【问题标题】:code first migration produces empty up down methods when add new model to existing database将新模型添加到现有数据库时,代码优先迁移会产生空向上的方法
【发布时间】: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


【解决方案1】:

回答: 在 PM 控制台中: 添加迁移初始创建 //这包括新添加的模型,例如他们的 ids,(cart,orderdetails, order models) 到 up down 方法中

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-24
    • 1970-01-01
    • 2015-08-20
    • 1970-01-01
    相关资源
    最近更新 更多