【发布时间】:2020-01-14 14:30:46
【问题描述】:
我有一个第三方项目(比如 DataProject),其中定义了 EF 数据上下文以及 EDMX 文件。我也有自己的项目(比如 MyProject),它引用了 DataProject,所以我可以使用它的数据上下文。
当我在解决方案中直接将 MyProject 引用到 DataProject 时,一切正常。 MyProject/bin/Debug/EDMX 中的 EDMX 文件与 DataProject/EDMX/ 中的完全相同。
但我需要 MyProject 才能将 DataProject 用作 NuGet 包。所以我将它添加为 NuGet 引用,当它被添加时,我注意到一个 EDMX 文件夹出现在 MyProject 主文件夹下。此文件夹中的 EDMX 文件与 DataProject/EDMX 中的相同。到目前为止一切顺利。
但是,当我 build 并运行 MyProject 时,它会创建 MyProject/bin/Debug/EDMX,其中的文件版本与上述任何版本都不同,我无法运行 datacontext由于“当前模型不再匹配用于预生成映射视图的模型......”错误。我不确定为什么会发生这种情况 - 是上下文和 EDMX 文件不匹配还是其他原因。我只知道,如果我在解决方案中直接将 MyProject 引用到 DataProject,那么一切正常。
- 当我将 DataProject 引用为 NuGet 包时,为什么 MyProject 会创建不同的 EDMX 文件?为什么直接引用 DataProject 时会创建相同的文件?
- 有没有办法忽略上面的错误?
- 有没有办法强制 EF 上下文使用特定的 EDMX 文件?
- 是否有文件/配置我应该在哪里检查任何设置?
- 还有其他建议吗?
【问题讨论】:
标签: .net entity-framework edmx