【问题标题】:Entity Frame Work Data Base first Initialise实体框架数据库首先初始化
【发布时间】:2012-03-14 15:43:29
【问题描述】:

我是实体框架工作代码优先/数据库优先和 MVC 的学生和初学者。 我正在使用第二个(DataBase First)。 我创建了我的数据库,从数据库生成了模型。 我的问题是:

如何初始化一些默认数据(在数据库中)? 在代码优先模式中,有一个方法叫seed

protected override void Seed(DatabaseContext context)

是否有使用 DataBase First 模式的等效方法

【问题讨论】:

    标签: c# asp.net database entity-framework design-patterns


    【解决方案1】:

    在数据库优先方法中,数据库已经存在,因此您的应用程序没有任何数据初始化。仅当应用程序代码创建数据库(代码优先)时才使用数据初始化,这不是您的情况。

    您必须使用本机 SQL 脚本或某些数据库客户端工具(如 SQL Server Management Studio 或带有服务器资源管理器的 Visual Studio)将一些数据简单地放入数据库。

    【讨论】:

    • 感谢回答目标只是为了能够在启动时更新我的​​数据库,如果已经创建了一个新表(通过更改我的上下文),而无需更新模型(.edmx)我自己。有点像种子方法对 Class Initilizer (DropCreateDatabaseIfModelChanges) 所做的
    • 在这种情况下不要使用 EDMX 并首先使用代码。简单的数据库首先表示您的应用程序无法控制您的数据库,因此它无法为它播种。种子也只会改变数据库中的数据而不是表本身。
    【解决方案2】:

    是的,我使用了 Entity Framework Power Tools CTP1,您可以通过扩展管理器使用它。创建 edmx 模型并安装工具后,右键单击项目并单击“逆向工程代码优先”,您将获得数据库的代码优先模型。然后,您的数据库已经有了从 codefirst 创建新数据库并从以前的数据库导出数据所需的数据。如果你对它感兴趣,我可以逐步展示它。

    【讨论】:

      猜你喜欢
      • 2023-03-23
      • 1970-01-01
      • 1970-01-01
      • 2013-07-04
      • 2016-06-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多