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

时间:2011-06-03 22:41:52

标签: c# entity-framework exception asp.net-mvc-3 metadata

在使用实体框架的分支的git合并之后,使用不同数据库上的实体已停止使用错误“元数据集合中不存在具有标识的成员'Path.To.Class'。”

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

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

在线查看其他人通过验证文件的名称相同来解决这个问题,等等。我已经这样做但没有运气。这个元数据存储和设置在哪里,我该怎么做才能修复它?

UPDATE:通过一次手动合并一个文件,似乎导致此错误开始发生的是将另一个.edmx文件添加到.csprodj文件中。此外,通过删除其他.edmx文件,它也开始工作了。换句话说:在同一个项目中包含第二个.edxm文件就打破了第一个!我该如何解决这个问题!

1 个答案:

答案 0 :(得分:0)

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

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

我的猜测是某些事情变得不相容,特别是我们如何添加代码生成项目。在此之前“删除所有内容并重试”解决方案之前,我们曾经为单个.edmx文件提供了多个.tt文件 - 但现在不再是这种情况了。