实体框架不生成关联属性

Posted

技术标签:

【中文标题】实体框架不生成关联属性【英文标题】:Entity Framework does not generate association property 【发布时间】:2012-10-26 12:58:34 【问题描述】:

所以。

我无法解决这个小问题。

我有好几节课,都很好。直到现在。我现在添加了另一个类(MatchResult),它可以工作。

但是当我尝试做出正确的关联时:

运行时异常失败。

错误:

指定的架构无效。错误:

未加载关系“DbModel.FK_ProductPrice” 因为“DbModel.Product”类型不可用。

以下信息可能有助于解决以前的问题 错误:

类型上不存在所需的属性“MatchResults” 'PriceMonitor.Model.Product'。

未加载关系“DbModel.FK_WebshopProduct” 因为“DbModel.Product”类型不可用。

以下信息可能有助于解决以前的问题 错误:

类型上不存在所需的属性“MatchResults” 'PriceMonitor.Model.Product'。

似乎 - 出于某种原因 - EF 没有在 Product 类上创建 MatchResults 属性。

这种方法适用于我使用 EF 制作的每一个类。到现在为止。

【问题讨论】:

您是否检查了该属性实际上是在代码中生成的。您可以尝试强制生成代码吗? 如何强制重新生成代码? 没关系,我找到了答案:-) 【参考方案1】:

我找到了答案。显然,这是实体框架中已确认的错误。 (什么?!)

看来,如果将 .emdx 文件放在子文件夹中,自动代码生成不起作用。

见this question。

【讨论】:

是的,这是 VS2012 中的一个已知错误 - 这就是我要求强制生成代码的原因...【参考方案2】:

我刚刚遇到了同样的错误,我的 csdl、ssdl 和 msl 的名称与我的 edmx 的名称不同,并且包含我的解决方案中的另一个 edmx 的名称。我更改了连接字符串并修复了它。

【讨论】:

【参考方案3】:

当使用 EF Database First 并且生成的 POCO 类与 edmx 文件不是最新的时会发生这种情况,例如当 POCO 类与 edmx 位于不同的项目中时。

【讨论】:

以上是关于实体框架不生成关联属性的主要内容,如果未能解决你的问题,请参考以下文章

实体框架此属性描述符不支持 SetValue

优化实体框架生成的 SQL Server 执行计划

实体框架:在关联中使用非主要唯一键的替代解决方案

如何访问相关记录的属性? (O/R 设计器生成的实体)

如何根据数据库中的表自动生成实体类

数据类与生成数据库表所需组成