概念类型中的成员数与对象端类型上的成员数不匹配

entity-framework

我正在使用.net framework 3.5 SP1。

在Sql Server中向一个表添加一个列(以及将现有列从允许空值更改为不可空)后,我无法再运行我的项目而不会出现此错误:

概念类型“XBRLDimensionalModel.axis_t”中的成员数与对象端类型“EOL.Xbrl.Persistence.Data.axis_t”上的成员数不匹配。确保成员数量相同。

我放弃了尝试查找并修复生成的代码。我现在已经删除了所有本地实体相关文件,并从头开始重新生成它们并添加一个新项目(ADO.NET实体数据模型)。我仍然得到这个错误。

我现在可以运行项目的唯一方法是撤消所有挂起的更改并使用源代码管理中的最后一个版本,当然也可以将两个已修改的数据库列更改为可为空。

从我到目前为止阅读的所有内容来看,我似乎应该能够从数据库中“更新”我的模型。这导致了这个例外(上图)。但现在我完全感到困惑,即使完全重新生成实体模型和支持类,我仍然会遇到这个错误。

我在edmx模型上更改了属性:“元数据工件处理”到“复制到输出目录”。 Designer.cs,csdl,msl,ssdl文件似乎都与最新的DB更改一致。

第一次引用entityModel实例时抛出异常。因此,它是在更改的表中加载或保存数据之前。

我出错的任何想法?谢谢,TG

一般承认的答案

以XML格式打开模型。从CSDL中删除对该类型的所有引用。保存并关闭,然后在GUI中重新打开。现在您应该能够像往常一样更新模型。如果这不起作用,请执行相同的操作,但也要从MSL中删除。


热门答案

如果在Visual Studio外部更改EDMX文件,也会发生此错误。右键单击EDMX文件,然后单击“运行自定义工具”




许可下: CC-BY-SA with attribution
不隶属于 Stack Overflow
这个KB合法吗? 是的,了解原因
许可下: CC-BY-SA with attribution
不隶属于 Stack Overflow
这个KB合法吗? 是的,了解原因