我最近将一个现有项目迁移到.net 4.5,并更改了该项目用于数据访问的内容(切换到实体框架).
出于某种原因,任何时候,我尝试访问任何功能,适用于DbSet( ,,Where 等),它抛出的错误:FirstFirstOrDefault
错误53'System.Data.Entity.DbSet
1<MyProject.Data.Customer>' does not contain a definition for 'FirstOrDefault' and no extension method 'FirstOrDefault' accepting a first argument of type 'System.Data.Entity.DbSet1'可以找到(您是否缺少using指令或程序集引用?
这使用.net 4.5,我读到这些函数不再在System.Linq中,但现在存储在System.Core中.我已经向项目添加了对System.Core的引用,但我仍然收到错误.System.Linq有一个using语句,但System.Core没有.
谁能明白为什么我会收到这个错误?关于如何修复的建议?
更新:
这是抛出错误的行:
VIModel Db = new VIModel();
Customer = Db.Customers.FirstOrDefault(c => c.CustomerId == CustomerId && c.IsPrimary);
Run Code Online (Sandbox Code Playgroud)
和我的DbContext:
public partial class VIModel : DbContext
{
........
public virtual DbSet<Customer> Customers { get; set; }
........
}
Run Code Online (Sandbox Code Playgroud) 错误CS1061"任务>"不包含"FirstOrDefault"的定义,并且没有可以找到接受"任务>"类型的第一个参数的扩展方法"FirstOrDefault"(您是否缺少using指令或程序集引用?),
用facebook控制器创建一个web应用程序,包括使用system.linq,但仍然得到错误FirstOrDefault().我不知道问题是什么,我重新安装了视觉工作室,因为他同样的事情适用于我的朋友笔记本电脑.我耍弄了一下,看看这个方法是否存在于库中并且它存在但是仍然没有超过这个图像
public async Task<ActionResult> Posts()
{
var currentClaims = UserManager.GetClaimsAsync(HttpContext.Identity.GetUserId());
// Error occurs here at FirstOrDefault
var accesstoken = currentClaims.FirstOrDefault(x = > x.Type == "urn:tokens:facebook");
if (accesstoken == null)
...
}
Run Code Online (Sandbox Code Playgroud)