【发布时间】:2016-11-14 04:32:31
【问题描述】:
我创建了模型并执行了代码优先迁移,这导致了预填充的 up down 方法。 然而,在稍后阶段,我在我的应用程序中添加了新模型。我添加的新模型是 Cart、OrderDetails 和 Order。然后我为这些模型中的每一个输入了 add-migration,结果产生了空的 up down 方法。
我想问为什么当我添加一个新模型时这些 up down 方法是空的。 我在 dbcontext 中引用了这些模型,与引用之前创建的模型的 dbcontext 相同。
这些是我添加的新模型类:
public class OrderDetail
{
public int OrderDetailId { get; set; }
public int OrderId { get; set; }
public int BookId { get; set; }
public int Quantity { get; set; }
public decimal UnitPrice { get; set; }
public virtual Book Books { get; set; }
public virtual Order Order { get; set; }
}
public class Cart
{
[Key]
public int RecordId { get; set; }
public string CartId { get; set; }
public int BookId{ get; set; }
public int Count { get; set; }
public virtual Book Book { get; set; }
}
class Order
{
public int OrderId { get; set; }
public string Username { get; set; }
public string FirstName { get; set; }
}
这是我的数据库上下文
public BookStoreOnlineDB() : base("name=BookStoreOnlineDB")
{
}
public System.Data.Entity.DbSet<BookStoreOnline.Models.Book> Books { get; set; }
public System.Data.Entity.DbSet<BookStoreOnline.Models.Author> Authors { get; set; }
public System.Data.Entity.DbSet<BookStoreOnline.Models.BookStatus> BookStatus { get; set; }
public System.Data.Entity.DbSet<BookStoreOnline.Models.Genre> Genres { get; set; }
public System.Data.Entity.DbSet<BookStoreOnline.Models.Order> Orders { get; set; }
public System.Data.Entity.DbSet<BookStoreOnline.Models.OrderDetail> OrderDetails { get; set; }
public System.Data.Entity.DbSet<BookStoreOnline.Models.Cart>Carts { get; set; }
}
总之,关于新添加的 Cart、OrderDetail 和 Detail 模型,我如何填充新的 up down 方法。
注意orderDetails 模型和 cart 模型引用了 book 模型(book 模型包含在较早阶段对其执行的数据迁移,并包含向下填充的方法)。
对此很陌生,非常感谢您的帮助。 谢谢
【问题讨论】:
-
尝试运行 Update-Database -Script -SourceMigration $InitialDatabase。它是否使用您先前的对象生成脚本?如果你不是太远,只需reset your migrations
-
@SteveGreene 没用,但还是谢谢
-
您的问题是 add-migration 没有代码。您的解决方案说 add-migration 现在有代码。你做了什么不同或改变?
-
我输入了 add-migration intitialcreate 作为添加迁移订单详细信息
-
假设您的意思是“add-migration orderdetails”,那么它没有任何区别。 “initialcreate”只是一个用户定义的标签,不会影响迁移本身的创建。
标签: asp.net-mvc entity-framework-migrations