【问题标题】:EF 4.1 - Problem accessing DB from same app on different machinesEF 4.1 - 从不同机器上的同一应用程序访问数据库时出现问题
【发布时间】:2011-08-30 09:16:59
【问题描述】:

我已将使用 EF 的应用程序部署到与我的数据库相同的服务器上。显然,当我第一次在服务器上运行应用程序时,数据库已创建 - 没问题。

但是,当我尝试使用与服务器上运行的实例相同的连接字符串/登录详细信息从本地计算机运行相同的应用程序时,我收到此异常,表明模型已更改,尽管它没有:

支持“EkmDomainsDbContext”上下文的模型已更改 数据库已创建。手动删除/更新数据库, 或使用 IDatabaseInitializer 实例调用 Database.SetInitializer。 例如,DropCreateDatabaseIfModelChanges 策略将 自动删除并重新创建数据库,并可选择为其播种 使用新数据。

我认为这与 EdmMetadata 表有关,但我不确定究竟是什么。谁能解释一下这个问题?

【问题讨论】:

    标签: c# entity-framework-4.1


    【解决方案1】:

    现有的数据库通常不需要任何数据库初始化程序,因此可以通过调用为您的上下文类型关闭它:

    Database.SetInitializer<YourDataContext>(null);
    

    【讨论】:

    • 我实际上并没有在任何时候调用 SetInitializer - 如果您不调用传递 null 的方法,是否设置了默认值?
    • 谢谢这解决了我的问题,就像我说我所做的根本没有调用 SetInitializer,这可能意味着设置了默认初始化程序
    • 实体框架如果模型改变默认调用drop create database,除非初始化器被改变或移除
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多