实体框架不生成关联属性
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 位于不同的项目中时。
【讨论】:
以上是关于实体框架不生成关联属性的主要内容,如果未能解决你的问题,请参考以下文章