在LINQ查询中使用相同名称的多个属性出错

时间:2016-06-24 09:06:19

标签: c# linq entity-framework-6 linqpad

我正在研究Linq查询,我在functionNavigation_b.Title列上遇到错误。我最初使用LinqPad来测试我的查询,

错误

An anonymous type cannot have multiple properties with the same name

enter image description here

LINQ查询

from functionNavigation in Sys_Nav_Functions
join functionHierarchy in Sys_Nav_FunctionHierarchies on functionNavigation.Function_ID equals functionHierarchy.Function_ID 
join functionNavigation_b in Sys_Nav_Functions on functionHierarchy.Parent_Function_ID equals functionNavigation_b.Function_ID
 select new {
              functionNavigation.Function_ID, 
              functionNavigation.Title, 
              functionNavigation.Hierarchy_Level,
              functionHierarchy.Parent_Function_ID, 
              functionNavigation_b.Title 
            }

2 个答案:

答案 0 :(得分:4)

匿名对象不能具有两个具有相同名称的属性。

更改您的匿名投影,为第二个标题属性指定其他名称。

functionNavigation.Function_ID, 
functionNavigation.Title, 
functionNavigation.Hierarchy_Level,
functionHierarchy.Parent_Function_ID, 
TitleB= functionNavigation_b.Title //or ParentTitle, or whatever you want

答案 1 :(得分:3)

错误很明显,您有Title个重复名称。

尝试指定唯一名称。

functionNavigation.Function_ID, 
functionNavigation.Title, 
functionNavigation.Hierarchy_Level,
functionHierarchy.Parent_Function_ID, 
AnotherTitle= functionNavigation_b.Title