尝试使用lambda表达式检索数据时出现转换错误

时间:2016-03-17 09:59:28

标签: c# asp.net entity-framework lambda

我正在使用下面的代码通过Id

获取库记录
MIS3Entities context = new MIS3Entities();
DBLibrary library2 = context.DBLibraries.Find(q => q.ID == asset.ID);

抛出错误'无法将lambda表达式转换为类型'对象',因为它不是委托类型'。我已经尝试过不同的方法来投射这条线,但无法让它发挥作用。我需要更改什么才能让这条线路正常工作?

1 个答案:

答案 0 :(得分:2)

与接受谓词作为参数的First(OrDefault)Single(OrDefault)不同,

DbSet<TEntity>.Find方法只接受params Object[] keyValues作为参数(see documentation):

  

查找具有给定主键值的实体。

所以在你的情况下,你可以尝试这样的事情:

// Assuming that the asset.ID is the primary key of the DBLibrary table
DBLibrary library2 = context.DBLibraries.Find(asset.ID);