如何将实体框架数据模型移动到同一项目中的单独文件夹

Posted

技术标签:

【中文标题】如何将实体框架数据模型移动到同一项目中的单独文件夹【英文标题】:How to Move EntityFramework DataModel to separate folder in Same project 【发布时间】:2016-02-10 07:40:30 【问题描述】:

我想移动 EDMX 文件及其所有依赖项(tt、vb、从 db 中自动生成的类)以避免项目根目录中的混乱。只需将其移至 DataModel 目录即可。

当我这样做时,刷新模型等一切看起来都很好。我没有从 ctontext.tt 模板中得到任何错误。但是当我运行应用程序并通过第一个 EF DB 调用时,我得到了:

MetadataException: 无法加载指定的元数据资源

我试图从

更改 webconfig 连接字符串
<add name="TransparencyMSD" connectionString="metadata=res://*/BLAHDataModel.csdl..." />

<add name="TransparencyMSD" connectionString="metadata=res://*/DataModel/BLAHDataModel.csdl..." />

但是,没有运气:(

我知道我忘记了一些事情,有人会这么好心,至少给我指出去哪里看吗?

我在 SO 中搜索了可能的解决方案,但没有人遇到相同的情况。

提前谢谢你

【问题讨论】:

【参考方案1】:

解决方案是将目录名称添加到连接字符串中的路径中,但用点分隔:

<add name="TransparencyMSD" connectionString="metadata=res://*/DataModel.BLAHDataModel.csdl" />

【讨论】:

感谢您的跟进——遇到了同样的问题,这有助于解决它! @taiji123 - 没问题,当我创建另一个具有所需结构的项目时,它就解决了。巧合;)

以上是关于如何将实体框架数据模型移动到同一项目中的单独文件夹的主要内容,如果未能解决你的问题,请参考以下文章

如何将一个自定义实体映射到实体框架中的某些数据库表?

如何将 asp.net 实体框架 connectionStrings 移动到 web.config 的 appSettings 部分

通过迁移将核心数据实体及其数据移动到新的核心数据模型文件中

如何将 sql server express 数据库附加到实体框架中的项目

如何将具有自定义属性的组件移动到 QML 中的单独文件

将ASP.NET Identity模型移动到类库