【问题标题】:How to configure entity framework metadata locations for a web application如何为 Web 应用程序配置实体框架元数据位置
【发布时间】:2023-03-12 13:00:01
【问题描述】:

我正在尝试使用此 ConnectionString 在 Web.config 文件中配置 Entity Framework 4

...
metadata=
         res://*/CmsEntityDataModel.csdl|
         res://*/CmsEntityDataModel.ssdl|
         res://*/CmsEntityDataModel.msl;
....

我想删除“*”并添加我的 dll 文件的实际路径。 如何在没有插件的情况下在 Visual Studio 中找到 dll 的路径?

谢谢

【问题讨论】:

  • 如果它按原样工作,为什么还要麻烦更改它?
  • 嗨,布赖恩,对不起,我正在学习对我来说非常有用,了解它是如何工作的。我还认为“*”会增加开销,因为编译器必须扫描每个 dll。如果你知道怎么做,请告诉我。感谢您的宝贵时间
  • 不太清楚你的问题是什么。我回答了 * 构造的作用。我不确定你找到没有附加组件的 dll 的路径是什么意思
  • 这个问题和你的另一个问题很相关:stackoverflow.com/questions/3675090/…
  • 使用* 时找到正确程序集的工作是在运行时完成的,而不是在编译时完成的。

标签: asp.net entity-framework entity-framework-4


【解决方案1】:

我写了a long explanation of EF metadata paths;您可能会发现阅读它会有所帮助。

您可以将* 替换为程序集名称,该名称可能是也可能不是强名称,如下所示:

<add name="MyEntities" connectionString="metadata=
        res://Simple Mvc.Data.dll/Model.csdl|
        res://Simple Mvc.Data.dll/Model.ssdl|
        res://Simple Mvc.Data.dll/Model.msl;provider= <!-- ... -->

【讨论】:

    【解决方案2】:

    res://*/CmsEntityDataModel.csdl 是一个资源位置,当您输入实际路径时,它指向磁盘上的文件。这意味着在部署时,您还需要将文件放在磁盘上的那个位置。

    将元数据作为嵌入式资源并使用资源位置是我要做的,除非您必须能够在不更改 dll 的情况下在某个时候将其换出。

    更多信息请见MSDN

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-09-13
      • 2015-10-20
      • 1970-01-01
      • 2013-01-22
      • 1970-01-01
      相关资源
      最近更新 更多