2011-09-11 59 views
1

我在我无法解决的应用程序中出现奇怪的错误。错误如下。实体框架4.0与CLR类型匹配概念模型的麻烦?

The Member 'Company' in the conceptual model type 'EntityModel.FK_Users_Companies' is not present in the CLR type 'EntityModel.FK_Users_Companies'. 

这对我来说很奇怪,我无法找到有关这个确切的错误,当我谷歌它。

关于如何解决它的任何建议?

+1

你在代码中做过任何重构吗?您是否更改过任何属性的名称而不更改EDMX文件中的名称? –

+0

是的,我把一些课程转移到另一个程序集/项目中。但没有对属性名称或数据库进行任何更改。 我也删除了.EDMX并创建了一个具有相同错误的新的。 – Frej

+0

您必须准确描述您在问题中所做的事情,否则您无法期望得到任何有用的答案。我们看不到您的项目。 –

回答

1

现在解决了这个错误。

在我的解决方案中,我有一个项目Data其中存储了我的EMDX文件和ASP.NET MVC 3项目以及其他一些项目。无论如何。这个问题的解决方案是复制Data项目中的App.Config中的ConnectionString,并将其放入ASP.NET MVC 3项目中的Web.Config中。

我hade已经做到了这一点,但不知何故有两个连接字符串之间的不匹配。

1

该错误表示您的类(CLR类型)与您的EDMX模型(概念模型类型)不同步。最显而易见的原因是你的类有导航属性的重构名称,但你的EDMX没有。

+0

谢谢,有什么简单的方法来重新同步类和EDMX模型?即使当我删除EDMX文件并重新创建时,该错误也不会消失。 – Frej

+0

当您重新创建EDMX时,是否还重新创建了所有实体类(=删除旧的并让EF再次创建它们)? –

+0

我删除了model.emdx文件,我想model.Designer.cs也同时被删除。是否还有其他需要删除的文件? – Frej