具有相同实体名称的多个 EF6 DB 模型发生冲突并被覆盖,如何在 EF6 中设置模型输出目录?

Multiple EF6 DB Models with same Entity names conflicting and getting overwritten, How to set model output directory in EF6?

我正在使用 EF6 并从多个数据库生成模型(数据库优先)。一些数据库具有相同的 table 名称,因此在生成模型时它们开始冲突。为了解决 namespace 问题,我转到解决方案资源管理器中的 Model.tt 文件属性并更改 Custom Tool Namespace

然而,这仅部分解决了我的问题,因为当生成额外的模型副本时(相同的 table 名称).cs 文件仍被放置在项目目录中并且相同的 table 名称实体得到覆盖。

如何在 EF6 中设置模型输出目录?或者用其他方式解决这个问题?

编辑:.edmx 移动到它自己的文件夹后,我现在在 var objectContext = ((IObjectContextAdapter)this.Ecom).ObjectContext;[=19] 行访问元数据时得到 {"Unable to load the specified metadata resource."} =]

感谢@CodeCaster

  1. 在您的项目目录中创建物理文件夹

  2. 通过包含在 Solution Explorer

  3. 中将其添加到您的项目中

  1. 在该目录中添加模型(我复制了它,但你可以尝试生成新的)

  2. 更改.tt文件Custom Tool Namespace

  3. 检查 Web.config/(app.config) 如果生成的 EF 连接字符串的元数据设置如下(目录结构由 .(点)完成不像 res:///Ecom.Ecom.csdl(从 res:///Ecom.csdl 而不是在它自己的文件夹中)。

希望这能节省一些时间。