【问题标题】:Cannot implicitly convert type 'System.Data.EntityState' to 'System.Data.Entity.EntityState'. An explicit conversion exists (are you missing a cast?)无法将类型“System.Data.EntityState”隐式转换为“System.Data.Entity.EntityState”。存在显式转换(您是否缺少演员表?)
【发布时间】:2014-01-15 01:34:58
【问题描述】:

使用 Entity Framework 时,我在 asp.net 中收到此错误: “无法将类型 System.Data.EntityState 隐式转换为 System.Data.Entity.EntityState。存在显式转换(您是否缺少强制转换?)”

这里是sn-p:

foreach (OrderLine line in order.OrderLines)
{
    context.Entry(line.Product).State = System.Data.EntityState.Modified;
}

请建议我应该如何解决该错误。

【问题讨论】:

  • context是什么类型?

标签: c# asp.net entity-framework


【解决方案1】:

当您使用 EF 6 或从 EF 5 迁移到 EF 6 时,您应该使用 System.Data.Entity.EntityState 而不是 System.Data.EntityState。当您的项目引用 EF6 但您有 EF5 的代码时会发生此错误。

另外,请查看此链接:When upgrading from EF5 to EF6 should I replace System.Data.Objects?

【讨论】:

  • 添加从“Web API 2 OData Controller with actions, using Entity Framework”继承的新控制器时,生成的代码包含db.Entry(application).State = EntityState.Modified,应更改为db.Entry(application).State = Entity.EntityState.Modified
【解决方案2】:

你的代码必须是这样的:

if (ModelState.IsValid)
{
    db.Entry(movie).State = System.Data.Entity.EntityState.Modified;
    db.SaveChanges();
    return RedirectToAction("Index");
}
return View(movie);

【讨论】:

    【解决方案3】:

    这发生在我生成的控制器中。删除 using System.Data.EntityState 并添加 using Microsoft.EntityFrameworkCore 后它对我有用

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-10-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多