添加第二个.edmx文件会使第一个文件在创建实体对象时因元数据错误而停止工作

本文关键字:文件 对象 元数据 错误 停止工作 实体 创建 edmx 第二个 第一个 添加 | 更新日期: 2023-09-27 17:58:26

对使用Entity框架的分支进行git合并后,在其他数据库上使用Entity已停止工作,并出现错误"元数据集合中不存在标识为"Path.To.class"的成员。"

当执行以下代码行时会遇到此错误:

var databaseTable = database.CreateObject<Table>();

在网上查看其他人通过验证文件的名称是否相同等方式解决了这个问题。我已经这样做了,但运气不好。这些元数据存储和设置在哪里?我可以做些什么来修复它?

更新:通过一次手动合并一个文件,似乎是在将另一个.edmx文件添加到.cprodj文件时开始出现此错误。此外,通过删除另一个.edmx文件,它也重新开始工作。换句话说:在同一项目中包含第二个.edxm文件就是打破第一个我该怎么解决这个问题!

添加第二个.edmx文件会使第一个文件在创建实体对象时因元数据错误而停止工作

我们能够通过删除两个.edmx和相关的.tt文件来解决这个问题,然后对每个文件:

  • 创建了新的ADO.NET实体数据模型
  • 保持从数据库导入时自动生成的所有名称不变
  • 添加了从.edmx文件本身生成代码,并使用ADO.NET EntityObject Generator(为每个生成一个.tt文件)
  • 更新了我们的代码(需要访问新实体名称)和配置文件(更改连接字符串的实体名称)

我的猜测是在某些地方事情变得不兼容,特别是在我们如何添加代码生成项的问题上。在这个"删除所有内容并重试"的解决方案之前,我们曾经对一个.edmx文件使用多个.tt文件,但现在已经不是这样了。