我正在尝试使用Linq查询从DbSet中提取对象。
我使用语法:
Nation nation = nationDB.Nations.Where(c => c.ID == testNation.ID).First();
我得到以下异常:
LINQ to Entities无法识别方法'Nation get_Item(Int32)'方法,而这一点 方法无法转换为商店表达式。
班级Nation
有两个string
字段,一个int
字段(ID)和一些其他对象作为字段。
问题是什么?
答案 0 :(得分:2)
如果ID
的类型为int
,则该行不应为:
Nation nation = nationDB.Nations.Where(c => c.ID == 1).SingleOrDefault();
删除引号以执行int
到int
比较。
答案 1 :(得分:2)
您需要首先提取整数,因为没有适当的转换来从Linq to Entities范围内的对象Nation
中检索整数:
int testId = testNation.ID;
Nation nation = nationDB.Nations.Where(c => c.ID == testId).SingleOrDefault();
答案 2 :(得分:0)
所以如果你说“一个int字段(ID)”和.Where(c => c.ID == "1")
我认为你需要改为
.Where(c => c.ID == 1)