【问题标题】:How to correctly create a database using entity framework code first approach如何使用实体框架代码优先方法正确创建数据库
【发布时间】:2014-07-27 09:43:02
【问题描述】:

在玩弄了实体框架代码优先方法来生成数据库之后,我仍然不确定正确的方法是什么,我能够生成数据库的唯一方法是使用迁移,所以在设置了我需要的模型之后,我使用包管理器并执行以下操作:

Enable-Migrations

然后:

Add-Migration Initial

最后:

Update-Database

我看过很多类似的教程:

Code First to a New Database

关于设置模型和运行项目后,数据库出现根本没有使用迁移,我很困惑,所以这里是我的问题:

  1. 数据库是在using语句之后创建的吗?所以在上面的教程中:

    using (var db = new BloggingContext()) 
    
  2. 迁移一般只用于更新数据库吗?

  3. 您认为最好的方法是什么?

【问题讨论】:

    标签: c# sql-server asp.net-mvc entity-framework ef-code-first


    【解决方案1】:

    1.数据库是在using语句之后创建的吗?所以在上面的教程中:

    using (var db = new BloggingContext()) 
    

    这几乎可以正常工作,但是您需要添加额外的语法,例如,让 EF 向数据库执行某些操作。

    using (var db = new BloggingContext()) 
    {
        db.YourDbSetProperty.Any();
    }
    

    2。迁移一般只用于更新数据库吗?

    是的,通过 EF 迁移,您将能够将您对代码所做的更改应用到数据库,而无需删除和重新创建数据库。

    但也可以用来生成数据库升级脚本。

    3.您认为最好的方法是什么?

    这主要是基于意见,你可以做任何一种方式,但为了在本地机器上进行开发,我通常从代码中删除并重新创建数据库,而不是使用迁移语法。

    【讨论】:

    • 对不起,我在第二个问题上说得不够清楚,我的意思是使用迁移来初始化/创建数据库而不只是更新数据库可以吗?,有什么缺点吗?以这种方式使用它?
    • 是的,没问题,只是策略不同,迁移通常用于生产,初始开发我们几乎不使用它,只需编码然后 F5,Boom!数据库已创建
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多