3

我一直在使用实体框架,现在想用 LINQ 代码进行查询。我假设如果我从我的参考书“Entity Framework 4 In Action”中几乎逐字复制我的代码就可以编译。

这是我的代码:

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

出乎意料的是,智能感知不接受我的任何代码。所以我做了一些研究并添加了项目参考、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 找不到类型或命名空间名称“from”(是否缺少 using 指令或程序集引用?) 147 13 AdamsStore

错误 11 找不到类型或命名空间名称“select”(是否缺少 using 指令或程序集引用?) 149 21 AdamsStore

4

1 回答 1

3
  1. select需要小写
  2. using System.Linq即使你有你仍然需要using System.Data.Linq
于 2012-10-20T19:46:57.803 回答