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

时间:2016-05-25 09:41:16

标签: c# entity-framework entity-framework-6 t4 ef-database-first

我正在使用foreach ($test->getData() as $row)并从多个数据库生成模型(数据库优先)。某些数据库具有相同的表名,因此在生成模型时它们会开始冲突。要解决EF6问题,我在解决方案资源管理器中访问了namespace文件属性并更改了Model.tt enter image description here

然而,这只是部分地解决了我的问题,因为在生成其他模型时,重复(相同的表名)Custom Tool Namespace文件仍然被放入项目目录并且相同的表名实体被覆盖。

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

编辑:将.cs移至其自己的文件夹后,我在访问.edmx

上的元数据时获得{"Unable to load the specified metadata resource."}

1 个答案:

答案 0 :(得分:1)

感谢@CodeCaster

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

  2. 通过加入Solution Explorer

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

    enter image description here

    1. 在该目录中添加模型(我将其复制过来,但您可以尝试生成新模型)

    2. 更改.tt档案Custom Tool Namespace
      enter image description here

    3. 签入Web.config /(app.config)生成的EF连接字符串是否将其元数据设置如下(目录结构使用.(点)而不是{{1 }(斜杠))喜欢关注 res:// /Ecom.Ecom.csdl (来自 res:// < / em> /Ecom.csdl ,但不在它自己的文件夹中。)

    4. 希望这可以节省一些时间。