【问题标题】:Which method in EF5 is in charge of creating databaseEF5中哪个方法负责创建数据库
【发布时间】:2013-05-14 13:12:14
【问题描述】:

我有几个问题:

  1. 在 EF5 代码优先 API 中,哪个方法负责检查数据库是否退出,如果不是,哪个方法创建数据库?

  2. 如果我首先在我的 DAL 项目中使用 EF 代码,并且我希望 EF 生成其他数据库用于测试目的,我可以使用 ef 来做到这一点吗?我已经更改了连接字符串中的初始目录以检查它是否创建了其他数据库,但它没有并抛出异常

  3. 通过使用 ef Code-First 或 DataBase-First,我们终于有了 DbContext 类,EF5 怎么知道我们使用了哪个方法来执行它的内部操作?

谢谢。

【问题讨论】:

    标签: c# ef-code-first entity-framework-5 ef-database-first


    【解决方案1】:

    用于检查是否存在的 API Context.Database.Exists();Context.Database.CreateIfNotExits();

    只要您访问 EF 上下文,它就会开始做事。 您可以操纵事物的默认行为。

    一个上下文可以再次打开不同的数据库实例是的。 您甚至可以使用它在 SAME Server 上创建不同的数据库。 需要谨慎使用构造函数和对应的 API.CONFIG 设置。

    <connectionStrings>
    <add name="YouCanHaveManyofTheese"
         connectionString="Data Source=localhost;Initial Catalog=DIFFERENT DBNAME ;Integrated Security=True;MultipleActiveResultSets=True;App=EntityFramework"
         providerName="System.Data.SqlClient" />
    

    还有
    查看Database.SetInitializer();

    Ef 知道它是创建了数据库,还是迁移了数据库。动作记录在这里。 [dbo].[__MigrationHistory]

    【讨论】:

    • 当我更改初始目录以强制 ef 生成数据库时,我的用户 'xxx' 登录失败,这意味着服务器上不存在数据库
    猜你喜欢
    • 2015-01-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-31
    • 2018-08-16
    • 1970-01-01
    • 2011-11-07
    • 1970-01-01
    相关资源
    最近更新 更多