我正在尝试使用ID搜索记录。我有成功返回所有记录的代码,但是我不确定如何只返回一个匹配的记录。
我用的是C#,linq,WCF
public List<Vehicle> SearchVehicleRecord(int vehicleID)
{
VehicleStockItem vehicle =
(from v in db.VehicleStockItems
where v.VehicleStockItemID == vehicleID
select v
).First();
return vehicle;
}
我收到的错误是“错误1”车辆销售服务。“Service1”不实现接口成员“VehicleSalesService”。iservice 1 . search vehicle record(int)'。车辆销售服务。service 1 . search vehicle record(int)“无法实现”VehicleSalesService。iservice 1 . search vehicle record(int)”,因为它没有匹配的返回类型“System。' Collections.Generic.List '。c:\ Users \ Dale \ Documents \ Visual Studio 2012 \ Projects \ vehiclesaleservice \ vehiclesaleservice \ service 1 . cs 12 18 vehiclesaleservice "
"错误2无法将类型'车辆销售服务.模型.车辆库存项目'隐式转换为'系统.收藏.通用.列表'C:\用户\戴尔\文档\Visual Studio 2012\项目\车辆销售服务\车辆销售服务\Service1.cs64 20车辆销售服务"
这是操作
[OperationContract]
List<Vehicle> SearchVehicleRecord(int vehicleID);
这是VehicleStockItem的定义
public partial class VehicleStockItem
{
public int VehicleStockItemID { get; set; }
public int ColourID { get; set; }
public int VehicleTypeID { get; set; }
public int WheelTypeID { get; set; }
public string Make { get; set; }
public string Model { get; set; }
public string Registration { get; set; }
public decimal Price { get; set; }
public int Capacity { get; set; }
public bool Automatic { get; set; }
public bool Sold { get; set; }
public System.DateTime StockEntryDate { get; set; }
public System.DateTime DateNew { get; set; }
public string Notes { get; set; }
public virtual Colour Colour { get; set; }
public virtual VehicleType VehicleType { get; set; }
public virtual WheelType WheelType { get; set; }
}
让我们看看方法:
public List<Vehicle> SearchVehicleRecord(int vehicleID)
{
VehicleStockItem vehicle =
(from v in db.VehicleStockItems
where v.VehicleStockItemID == vehicleID
select v
).First();
return vehicle;
}
存在哪些问题:
车辆库存项目
,但期望列表
作为返回也许你应该修改你的方法,像这样:
public VehicleStockItem SearchVehicleRecord(int vehicleID)
{
VehicleStockItem vehicle =
(from v in db.VehicleStockItems
where v.VehicleStockItemID == vehicleID
select v
).First();
return vehicle;
}
如果您这样做,请确保您使用操作合同
遵循它,并且在您定义操作合同
的地方定义了车辆库存项目
。
您可以修改您的方法以返回包含您想要的单个元素的列表。
或者,您可以将vehicle
转换为vehicle
,并修改
以获得
/code>结果,而不是
元素的列表List。
您将在方法实现中返回< code>VehicleStockItem的单个实例。
您的方法签名表明您正在返回List
您可以重载您的方法,以便您有一个在传入 id 时返回单个记录的实现和一个基于传入的任何参数返回集合的方法。
根据您是否添加或替换现有方法,您将添加或更新您的合约
[OperationContract]
VehicleStockItem SearchVehicleRecord(int vehicleID);
然后,您将更新您的签名以匹配您的合同:
public VehicleStockItem SearchVehicleRecord(int vehicleID)
{
VehicleStockItem vehicle =
(from v in db.VehicleStockItems
where v.VehicleStockItemID == vehicleID
select v
).First();
return vehicle;
}
当您创建方法搜索车辆记录(int车辆ID)时,您已经声明它将返回车辆列表。
但是,在linq查询中,当您调用。首先()您挑选出一辆车,并将其html" target="_blank">存储在您的VehicleStockItem vehicle中。然后,当该方法需要您返回一个车辆列表时,您返回单个VehicleStockItem对象。
因此,实际上存在两个问题:您定义了返回车辆列表的方法,但实际上既不返回列表也不返回车辆,而是返回单个VehicleStockItem。(上面说返回车辆,但这只是您创建的VehicleStockItem类型对象的特定名称。)
尝试将您的方法签名更改为
public VehicleStockItem SearchVehicleRecord(int vehicleID)
{
VehicleStockItem vehicle =
(from v in db.VehicleStockItems
where v.VehicleStockItemID == vehicleID
select v
).First();
return vehicle;
}
这需要返回单个 VehicleStockItem,这就是您给它的。
可以使用泛型将返回类型与参数类型匹配吗? 实例案例: 我有一个抽象类,可以从不同的POJO导入数据,这个类包含一个abstract方法importData。 importData返回的对象必须与传递给该方法的对象类型相同。 由于抽象方法的每个实现的对象类型不同,并且类型不扩展另一个,如何定义抽象方法,以便实现返回类型和传递类型必须匹配? 经过考验: 结果: 方法的返回类型不必与传递的对象类型匹配。
问题内容: 我正在用于在运行时更新json配置文件。有时,当模式在json文件中不匹配时,仍然会以返回码0退出。 返回0表示成功完成,但是如果找不到正确的模式并更新文件,为什么返回0?有没有解决方法? 谢谢! 问题答案: 如@cnicutar所评论,命令的返回码表示命令是否成功执行。与您在代码/脚本中实现的逻辑无关。 因此,如果您有: sed将返回,但是如果您编写一些语法/表达式错误,或者输入/文
问题内容: 我正在玩Go,发现一个我无法解决的问题。假设我有如下代码: 我导入了软件包并开始使用它: 我真的很喜欢我的助手“运行”,但是我想使其更加慷慨:我不希望人们总是向我传递MySQL客户端。可以是具有“ RunQuery”和“ Result”方法的任何东西。所以我尝试使用接口: 可悲的是,这不再编译了。我收到此错误: Go不支持此功能吗,或者我做错了什么? 问题答案: 应该返回接口,否则你总
问题内容: 我正在使用Elasticsearch的php库对我的网站进行索引和查找文档。这是用于创建索引的代码: 然后,我使用curl XPUT将文档添加到索引,并使用XGET查询索引。除了返回结果时跨索引的单数和复数查询词不匹配之外,这种方法效果很好。例如,当我搜索“讨论”时,不返回“讨论”的匹配项,反之亦然。为什么会这样呢?我认为这是默认情况下在Elasticsearch中处理的。为了匹配单数
有四种不同的类型:地点、语言、技术和行业。每个类型都有一个存储库,可以返回这些类型的集合。例如位置列表。每个类型都有一个类型为String的name属性。有一个字符串列表。它可以包含位置、语言等名称。我想编写一个函数来查找那些与字符串列表名称匹配的类型实体(位置、语言、...)。我在想这样的事情: 这是不正确的,那么如何对集合进行查询,然后如何确定name属性是否存在呢?
我不明白为什么所有这些空字符串之间。