EF4抛出错误“指定的架构无效”

时间:2010-06-15 15:37:13

标签: entity-framework .net-4.0 entity-framework-4 ado.net-entity-data-model

当我对上下文进行选择时,我得到了一个奇怪的EF4“Entity Framework v4”错误。

我得到的是:

指定的架构无效。错误: 未加载“AnalyzerConfigurationModel.FK_AnalyzerMetadataParameters_AnalyzerMetadata”关系,因为“AnalyzerConfigurationModel.AnalyzerMetadataParameter”类型不可用。

生成错误的查询是:

Using context As New AnalyzerConfigurationEntities
      Dim EFAnalyzerConfiguration = (From P In context.AnalyzerConfigurations
                                     Where P.Name = analyzerConfigurationName).FirstOrDefault
End Using

架构如下所示。 alt text http://i49.tinypic.com/2eujwd0.jpg

我已多次检查连接字符串,而不是。一切都很好看。我不确定从这个模式生成的XML是否关闭。但也看了那里,没有看到任何其他属性或与其他属性不同。有没有人遇到过这个?

4 个答案:

答案 0 :(得分:11)

我发现如果我在解决方案资源管理器(VS 2012)中展开EDMX文件并右键单击每个.tt文件并选择运行自定义工具也修复了问题。这可能比de

更容易

答案 1 :(得分:2)

另外请确保您正在引用项目已安装EntityFramework,否则相关代码将收到此错误。

https://www.nuget.org/packages/EntityFramework

答案 2 :(得分:1)

让我解释一下:

问题是因为系统没有找到数据库中列的一致性,.edmx文件中的实体和模型类以及控制器类中相同的用法。

请按照以下步骤解决此问题:

  1. 转到数据库,检查所有列名称和属性。
  2. 使用.edmx文件中的类图确认它们。右键单击要获取错误的类,然后选择该类的更新选项。在对话框中选择“刷新”选项卡(如果没有添加新列。如果添加了新列,则可以选择“添加”选项卡。)并选择相关对象。通常他们是桌子。所以选择它们并完成。
  3. 接下来检查模型类和控制器类中的名称。
  4. 这应该是解决方案。如果没有,请告诉我。

答案 3 :(得分:0)

您使用的是SelfTracking Entity T4模板吗?我有这个问题,发现在我更改实体设计器中的实体模型后,T4模板没有重新生成我的实体。尝试右键单击T4模板,然后单击“运行自定义工具”,看看是否有帮助。