【问题标题】:cannot implicitly convert type system.data.entitystate to system.data.entity.entitystate(are you missing a cast?)无法将类型 system.data.entitystate 隐式转换为 system.data.entity.entitystate(您是否缺少演员表?)
【发布时间】:2015-04-22 12:31:26
【问题描述】:

我最近在 Visual Studio 中做了一些更新,这个错误开始发生,我真的是 MVC 新手,我不确定是什么导致了这个错误。

    using System;
    using System.Collections.Generic;
    using System.Data;
    using System.Linq;
    using System.Web;
    using SystemInformation.BookedEvent.Interfaces;
    using SystemInformation.DBModel;

    namespace SystemInformation.BookedEvent.Repository
    {
     public class BookedEventRepository : IBookedEventRepository
        {
         public void UpdateBooking(IEnumerable<DBModel.BookedEvent> bookings)
            {
        foreach (var booking in bookings)
        {
            var record = new DBModel.BookedEvent
                             {
                                 ID = booking.ID,
                                 UserID = booking.UserID,
                                 EventID = booking.EventID,                                  
                                 DateBooked = booking.DateBooked,
                                 Trainer = booking.Trainer,
                                 Date = booking.Date,
                                 EndDate = booking.EndDate,
                                 Attended = true
                             };
             _context.Entry(record).State = System.Data.EntityState.Modified;
            }
        }
    }

【问题讨论】:

  • 这里的错误点是哪一行?
  • 查看这篇文章:stackoverflow.com/questions/21127553/…。您可能引用了旧版本的 EF
  • 试试_context.Entry(record).State = System.Data.Entity.EntityState.Modified;
  • 错误就在_context.Entry(record).State = EntityState.Modified;但仅从 EntityState.Modified 中显示;

标签: c# entity-framework asp.net-mvc-4 razor


【解决方案1】:

你需要

_context.Entry(record).State = System.Data.Entity.EntityState.Modified;

插入

_context.Entry(record).State = EntityState.Modified;

System.Data.EntityState 中有两个实体状态,另一个是 System.Data.Entity.EntityStateEntry.State 指的是 System.Data.Entity.EntityState 的类型,这与您在命名空间声明中的内容冲突。

【讨论】:

  • 更改那行代码后仍然报错
  • 它给出的错误是错误无法将类型“System.Data.EntityState”隐式转换为“System.Data.Entity.EntityState”。存在显式转换(您是否缺少演员表?)
  • @laura 你确定你有System.Data.Entity.EntityState吗?请更新问题代码。
  • 我已经更新了代码,我想有一个我缺少的 using 语句还是应该包含的参考?
  • @laura 不需要任何东西。它应该工作。我想知道这种行为。尝试清理解决方案并再次构建解决方案。
【解决方案2】:

您可能已将 EF 5 更新为 EF 6。

EF 5 中的更新记录状态使用 System.Data.EntityState & 在 EF 6 System.Data.Entity.EntityState 中。

这样做可能会显示错误然后重建解决方案。

【讨论】:

    猜你喜欢
    • 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
    相关资源
    最近更新 更多