实体框架异常:找到不明确的匹配

Kyl*_*yle 5 c# entity-framework entity-framework-5

我收到错误:

找到了模棱两可的比赛

在此代码上添加.Add

var db = new NexusEntities(); 
db.Reports.Add(mmr);
Run Code Online (Sandbox Code Playgroud)

如果有两个具有相同名称但位于不同名称空间的类,则从谷歌搜索似乎是一个问题.据我所知,情况并非如此......是否还有其他原因导致此错误发生?或者有没有办法告诉它找到哪两个参数?

phi*_*ady 20

这是EF的"弱点".当同一属性出现在类/子类型层次结构中时,会发生这种情况.

很可能你有一个隐藏的领域.即已重新定义的属性.当EF查找属性时,它也必须使用类型/基础树来查找属性.但如果它在树中找到它两次,它会将其解释为重复.EF不仅仅使用最低的特定覆盖.

因此EF无法隐藏属性.

检查你的课程,一个属性将在某个地方出现两次.

  • @kirsteng和其他任何人遇到这个问题,一个简单的方法来解决问题属性:当抛出异常时进入调用堆栈窗口,右键单击 - >显示外部代码,右键单击 - >显示参数值,然后查看提示堆栈.我是顶部的第3个(propertyOrFieldName):`System.Core.dll!System.Linq.Expressions.Expression.PropertyOrField(System.Linq.Expressions.Expression expression = {System.Linq.Expressions.UnaryExpression},string propertyOrFieldName = "Country_State")未知` (3认同)