LINQ实体异常

时间:2011-03-21 20:37:02

标签: linq entity-framework

我正在尝试使用Linq查询从DbSet中提取对象。

我使用语法:

Nation nation = nationDB.Nations.Where(c => c.ID == testNation.ID).First();

我得到以下异常:

  

LINQ to Entities无法识别方法'Nation get_Item(Int32)'方法,而这一点   方法无法转换为商店表达式。

班级Nation有两个string字段,一个int字段(ID)和一些其他对象作为字段。

问题是什么?

3 个答案:

答案 0 :(得分:2)

如果ID的类型为int,则该行不应为:

 Nation nation = nationDB.Nations.Where(c => c.ID == 1).SingleOrDefault();

删除引号以执行intint比较。

答案 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)