我一直在使用实体框架,现在想用 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