我正在使用VS 2010和EF 4.3开发ASP.NET MVC 4应用程序。它从外部数据库检索一些数据,并且所有数据都按预期工作,直到有一天我尝试重新编译它。编译后,我收到以下EF错误:


无效的列名“ CreatedOn”。


没有更改数据库或代码-我只是添加了一些缩进以提高可读性。 TFS的先前应用程序版本也引发相同的异常。

我的实体中没有CreatedOn属性,数据库中也没有这样的字段,在任何情况下我都不需要它,也不需要它。

应该采取什么措施来避免这种异常?

这是我用于访问数据的自定义数据库上下文:

public class MyContext<T> : DbContext where T : class, IDataEntity
{
   public MyContext(string connectionKey)
        : base("name=" + connectionKey)
    {
        Configuration.AutoDetectChangesEnabled = false;
    }

    protected override void OnModelCreating(DbModelBuilder modelBuilder)
    {
        modelBuilder.Entity<Label>().Property(item => item.Id).HasColumnName("LabelId");
        modelBuilder.Entity<Label>().Ignore(item => item.ChangedBy);
    }
}


这是Label类

public class BaseEntity : IDataEntity
{
    public int Id { get; set; }
    public string Name { get; set; }
    public string ChangedBy { get; set; }
}

public class Label : BaseEntity
{
}

最佳答案

就我而言,它是MiniProfiler。我使用EF 5.0,它使用EF4.x。禁用探查器后,不再引发异常

关于asp.net-mvc - Entity Framework 4.3。无效的列名“CreatedOn”,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12193465/

10-10 07:51