【问题标题】:Code First - How to programatically generate DbContext and Entities?Code First - 如何以编程方式生成 DbContext 和实体?
【发布时间】:2016-06-28 16:36:11
【问题描述】:

因此,按照这个示例 (https://msdn.microsoft.com/en-us/data/jj193542),我能够手动输入 Entity 类和 DbContext 类,以便从头开始创建一个新数据库。

这一切都很好,但是,我需要以编程方式创建 DbContext 和实体(从我构建的提供元数据的程序集)而不是手动输入它们。然后,我需要在编译或运行时动态地在 SQL 中创建数据库,而不是在以编程方式添加记录时(如上面链接中的示例所示)。

这可以通过 Code-First 方法实现吗?

【问题讨论】:

  • 因此,使用 t4 模板,我能够包含我的程序集并生成 DbContext 和 Entity 类。问题是我仍然需要以编程方式打开 DbContext,创建一个新的空实体并添加它,然后调用 db.SaveChanges() 以便在 SQL 中创建数据库和表!必须有另一种方法来创建数据库!有人吗?
  • Database.Initialize 将创建数据库。 msdn.microsoft.com/en-us/library/…
  • 成功了,谢谢先生。

标签: ef-code-first entity-framework-6


【解决方案1】:

现在已经解决了。为了生成 DbContext 和实体,我使用了 T4 模板(有关 T4 模板的更多信息,请参阅:https://msdn.microsoft.com/en-us/data/gg558520.aspx),然后只需调用 Database.Initialize(false) 来强制数据库在应用程序(本例中为控制台应用程序)执行时创建.

        using (var db = new MyContext())
        {
            db.Database.Initialize(false);
        }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-27
    • 2021-10-29
    • 1970-01-01
    • 1970-01-01
    • 2012-03-15
    相关资源
    最近更新 更多