我一直在使用Entity Framework,现在想使用LINQ代码进行查询。我以为如果我几乎完全从我的参考书“Entity Framework 4 In Action”中复制了代码,我的代码就可以编译。

这是我的代码:

from a in db.addresses
where a.accountId == 1
Select o;

出乎意料的是,intellisense没有接受我的任何代码。因此,我进行了一些研究,并添加了项目参考,web.config程序集参考以及使用对LINQ的参考
using System.Data.Linq;

并编辑了web.config以包括
<assemblies>
<add assembly="System.Data.Linq, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>

即使如此,Intellisense和编译器仍然不接受关键字“in”或db.addresses(db是上下文,而在我的文件中的其他地方,我也可以像这样进行调用:
users currentUser = db.users.Single(m => m.email == User.Identity.Name);

所以问题也不是我的数据库上下文。我已经搜索了栈,asp.net,并用谷歌搜索了“LINQ语法未编译”,但找不到任何进一步的线索。

这是我的编译器错误:

错误14;预期147 20 AdamsStore

错误15;预期147 23 AdamsStore

错误16;预期148 23 AdamsStore

错误17;预期148 39 AdamsStore

错误13无效的表达式术语'in'147 20 AdamsStore

错误8仅赋值,调用,递增,递减和新对象表达式可以用作语句147 18 AdamsStore

错误10仅赋值,调用,递增,递减和新对象表达式可以用作语句148 23 AdamsStore

错误7找不到类型或 namespace 名称'from'(您是否缺少using指令或程序集引用?)147 13 AdamsStore

错误11找不到类型或 namespace 名称“选择”(您是否缺少using指令或程序集引用?)149 21 AdamsStore

最佳答案

  • select必须为小写
  • 即使您有using System.Linq
  • ,您仍然需要using System.Data.Linq

    09-25 21:24