【问题标题】:Changing Namespaces in Entity Framework在实体框架中更改命名空间
【发布时间】:2015-01-07 12:00:43
【问题描述】:

我正在尝试更改类的实体框架生成器使用的命名空间。

当我单击我的实体的设计器 Model.edmx 时,我可以看到可以更改命名空间的地方:

命名空间

在 ConceptualEntityModel 属性下。更改了该名称空间,但什么也没发生。没用。所以,我从这个链接中阅读了一些帮助:

http://weblogs.asp.net/zeeshanhirani/struggling-through-namespace-in-entity-framework

说我要改属性:自定义工具命名空间

很好,当我在控制台应用程序中单击 .edmx 的属性时,那里有属性。但是当我在 Web 应用程序 中使用相同的东西时,该属性不存在。只有一个名为 Web File Properties 的属性文件只有 3 个属性:

  • 自定义工具
  • 文件名
  • 完整路径

我在这里错过了什么?

【问题讨论】:

    标签: c# asp.net entity-framework namespaces


    【解决方案1】:

    rainerh 是对的:

    我尝试设置 *.edmx 自定义工具命名空间 属性 - 这没有帮助。
    我试图设置 *.Context.tt 属性 - 这也没有帮助。
    但是当我设置 *.tt 文件的 Custom Tool Namespace 属性时(右键单击文件 -> 属性) - 为之前生成的所有类自动设置了命名空间。

    【讨论】:

    • 唯一没有改变的是 *.Context.cs 文件引用...要更改它,您需要在项目属性上设置默认命名空间。
    • 为了使其正常工作,我必须在 *.Context.tt 和 *.tt 文件上设置自定义工具命名空间属性。
    • 提示:解决方案资源管理器中的“显示所有文件”选项应启用以扩展 edmx 模型
    【解决方案2】:

    首先打开您的 edmx 文件,然后按 F4 或单击属性窗口。 在 Schema 部分下,有一个名为 Namespace 的属性,您可以对其进行修改。

    【讨论】:

    • 好的,试试这个...在您的解决方案资源管理器中,展开您的 edmx 以查看 .Context.tt。右键单击 Context.tt 文件并选择属性。自定义工具命名空间属性在其中。尝试更新它,看看会发生什么
    • 在我的情况下,它不是 .Context.tt 而只是 .tt 我在 6.1.3 版中使用实体框架
    • 谢谢。我想更改 model namespace 即生成的 DbContext 类的名称,这正是我所需要的。
    • 哇!这有效!这应该是公认的答案!
    【解决方案3】:

    在我的例子中,我只是简单地在项目中创建了一个文件夹,将 .edmx 文件移动到我创建的文件夹中(使用解决方案资源管理器),所有内容都自动更改了命名空间。

    【讨论】:

    • 这是迄今为止最好的解决方案,在文件夹中创建 edmx,它会自动将该文件夹作为命名空间的一部分
    • 这对我有用,是最简单的解决方案。英孚 6.4.0
    【解决方案4】:

    我的问题是我必须重命名解决方案,而默认命名空间和程序集名称没有更改为新名称。确保您的命名空间在 EDMX 设计器中正确后,右键单击您的项目以打开属性并更新默认命名空间和程序集名称,我们很好。

    【讨论】:

      猜你喜欢
      • 2013-01-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-12-31
      • 1970-01-01
      相关资源
      最近更新 更多