【发布时间】:2016-06-13 22:45:01
【问题描述】:
我最近更新了一个 ASP.NET 5 项目以使用 ASP.NET Core (RC2) 和 Entity Framework Core。到目前为止,除了这里和那里的细微差别之外,一切都还好,但是在尝试更改我的一个表的名称后,我注意到我的迁移试图引用一个不正确的表(即“MyProject.Models.Blog”而不仅仅是“博客”)。
我浏览了一些文档并尝试了一些方法,例如使用数据注释。我的模型的设置类似于它们在文档中的设置(使用特定于我的项目的不同命名/数据,但想法相同):
public class MyContext : DbContext
{
public DbSet<Blog> Blog { get; set; }
public DbSet<Post> Posts { get; set; }
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
builder.Entity<Blog>();
builder.Entity<Post>();
}
}
public class Blog
{
public int BlogId { get; set; }
public string Url { get; set; }
}
public class Post
{
public int PostId { get; set; }
public string Title { get; set; }
public string Content { get; set; }
public int BlogId { get; set; }
public Blog Blog { get; set; }
}
所以当我进行更改时,去创建一个新的迁移,并查看生成的迁移文件,我可以看到 migrationBuilder 现在正在尝试对“MyProject.Models.Post”表进行更改,而不是“Post”表,它曾经这样做过。在更新到 Core 之前,我已经进行了一些迁移,并且自更新以来我的模型没有改变任何东西,所以这是新行为。
编辑:我应该注意我目前在我的模型上使用“[Table("Post")]”数据注释,但这也无济于事。
编辑 2:这是我的迁移文件内容的链接(名称已更改)-http://pastebin.com/CZmXTBEM
【问题讨论】:
标签: c# asp.net .net asp.net-mvc entity-framework