相关疑难解决方法(0)

实体框架5期望来自MigrationHistory表的CreatedOn列

我正在将MVC 3应用程序从EF 4.3迁移到EF 5.我注意到EF 5需要表CreatedOn中的__MigrationHistory列,由于迁移是由旧版本创建的,因此该列不存在.

SELECT TOP (1) 
[c].[CreatedOn] AS [CreatedOn]
FROM [dbo].[__MigrationHistory] AS [c]
Run Code Online (Sandbox Code Playgroud)

如何在不擦除迁移历史记录的情况下解决此问题?我正在考虑一个查询来从迁移名称推断列的值,其格式如下:

201203111201542_MigrationName
Run Code Online (Sandbox Code Playgroud)

entity-framework entity-framework-5

20
推荐指数
4
解决办法
5816
查看次数

实体框架4.3.列名称'CreatedOn'无效

我正在使用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);
    }
}
Run Code Online (Sandbox Code Playgroud)

这是Label类

public class BaseEntity : IDataEntity 
{ 
    public int Id { get; set; } 
    public string Name { get; set; } 
    public string ChangedBy { get; set; } 
} …
Run Code Online (Sandbox Code Playgroud)

asp.net-mvc entity-framework entity-framework-4

17
推荐指数
3
解决办法
6961
查看次数