【问题标题】:How should I edit an Entity Framework connection string?我应该如何编辑实体框架连接字符串?
【发布时间】:2011-07-15 01:27:40
【问题描述】:

我最近不得不编辑我的 app.config 文件来更改实体框架数据模型的连接字符串(.edmx 文件)。但我想知道:有没有办法使用设计器编辑 EF 连接字符串?

原始连接字符串由实体数据模型向导自动生成。然后无法更改连接字符串 - 它在 .edmx 设计器的属性窗口中保持禁用状态。如果可以的话,我喜欢避免手动编辑 XML(在 app.config 中),所以我想知道是否有办法回到原始向导屏幕来更改连接字符串并让工具编辑 app.config 文件对我来说。

【问题讨论】:

    标签: entity-framework entity-framework-4 connection-string app-config


    【解决方案1】:

    如果您从 app.config 文件中删除连接字符串,重新运行实体数据模型向导将指导您建立新连接。

    【讨论】:

    • 优秀。这正是我一直在寻找的答案。为了安全起见,我注释掉了现有字符串(而不是删除它),保存了 app.config 更改,右键单击设计器并选择从数据库更新模型。然后,向导让我在连接字符串中包含敏感信息(uid 和 pwd)。谢谢!
    • 如果您使用的是模型优先,则右键单击设计器并单击“从模型生成数据库”
    • 这对我也有用,除了我必须更新 App.config 文件,然后重新启动 VS.NET 2012。它没有检测到 App.config 文件已更改。
    • 我必须在 app.config 文件上显式调用 save 以便设计人员识别连接字符串已被删除。
    • 重启 VS 的替代方法是 1. 注释掉 app.config 中的连接字符串 2. 重建包含 .edmx 的项目 3. 右键单击​​ .edmx 设计图面并更新模型从数据库...应该会打开连接字符串向导。
    【解决方案2】:

    不,您不能在设计器中编辑连接字符串。连接字符串不是 EDMX 文件的一部分,它只是从配置文件中引用的值,可能因为它在属性窗口中只是只读的。

    修改配置文件是一项常见的任务,因为您有时希望在不重新构建应用程序的情况下进行更改。这就是配置文件存在的原因。

    【讨论】:

    • +1 用于提醒:如果他们将其放在配置文件中,则意味着他们希望您能够更改它。我主要担心我的更改可能会被覆盖
    • 您应该去更改 edmx 所属项目的应用程序配置中的连接字符串。不是顶级应用程序的配置(在运行时使用)。 o_0
    【解决方案3】:

    您通常在 Web.config 中定义连接字符串。生成 edmx 后,连接字符串将存储在 App.Config 中。如果要更改连接字符串,请转到 app.config 并删除所有连接字符串。现在转到 edmx,右键单击设计器图面,选择 Update model from database,从下拉列表中选择连接字符串,单击 next,添加或刷新(选择什么你想要)并完成。

    在输出窗口中会显示类似这样的内容,

    生成的模型文件:UpostDataModel.edmx。 从数据库加载元数据耗时 00:00:00.4258157。 生成模型花费了 00:00:01.5623765。 将连接字符串添加到 App.Config 文件中。

    【讨论】:

    • 我遇到了类似的问题,但是当我注释掉连接字符串、更新模型、选择新的连接字符串时,模型中的 context.cs 类被清空了。除非它只是未能生成上下文类,否则不知道为什么要这样做?
    • 它不应该那样做。可能是您的 T4 模板工具已损坏。
    • 我同意,它“不应该”。但是,当我对底层架构进行多次重大更改时,我已经记不清有多少次了,我最终不得不简单地删除模型并创建一个新模型。也许使用 EF7 及其删除 edmx 文件可能会有所帮助。无论哪种方式,这也是我这次所做的,只是突出显示模型中的所有内容,点击删除并将这些项目带回。
    【解决方案4】:

    打开 .edmx 文件,任何文本编辑器更改 Schema="your required schema" 并打开 app.config/web.config,更改用户 ID 和连接字符串中的密码。你完成了。

    【讨论】:

    • 是的,它做到了。
    【解决方案5】:

    按照以下步骤操作:

    1. 打开app.config并注释连接字符串(保存 文件)
    2. 打开 edmx(转到属性,连接字符串 应为空白),再次关闭 edmx 文件
    3. 打开app.config并取消注释连接字符串(保存文件)
    4. 打开 edmx,转到属性,您应该会看到连接字符串已更新!!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-11-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多