首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Entity Framework 4.3。无效的列名'CreatedOn‘

Entity Framework 4.3。无效的列名'CreatedOn‘
EN

Stack Overflow用户
提问于 2012-08-30 17:07:29
回答 4查看 7.2K关注 0票数 17

我正在使用VS2010和EF4.3开发一个ASP.NET MVC4应用程序。它从外部数据库中检索一些数据,一切工作正常,直到有一天我尝试重新编译它。编译后,我收到以下EF错误:

无效的列名'CreatedOn‘。

没有做任何DB或代码更改-我只是添加了一些缩进以提高可读性。TFS以前的应用程序版本也抛出了相同的异常。

我的实体中没有CreatedOn属性,数据库中也没有这样的字段,我既不需要也不想要它。

应该做些什么来避免这种异常?

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

代码语言:javascript
复制
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);
    }
}

这是标注分类

代码语言:javascript
复制
public class BaseEntity : IDataEntity 
{ 
    public int Id { get; set; } 
    public string Name { get; set; } 
    public string ChangedBy { get; set; } 
} 

public class Label : BaseEntity 
{ 
}
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2012-08-30 20:45:19

找到了我的问题的答案。感谢大家的回复。

代码语言:javascript
复制
Database.SetInitializer<MyContext<Label>>(null);

这解决了这个问题,并在EF中禁用了DB更改跟踪。

票数 6
EN

Stack Overflow用户

发布于 2013-01-24 20:45:08

在我的例子中,它是MiniProfiler。我使用EF 5.0,它使用EF 4.x。禁用探查器后,不再引发异常

票数 14
EN

Stack Overflow用户

发布于 2012-08-30 17:35:21

EF 4.3.1向__MigrationHistory表添加了一个CreatedOn列,EF 5.0随后删除了该列。自上次更新数据库以来,我怀疑您已将EF升级到4.3.1。

您可以运行迁移来添加CreatedOn列,手动添加它,或者在不再需要的情况下升级到EF 5.0。

票数 10
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12193465

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档