2013-07-08 18 views
0

我寫這樣的查詢:的IEqualityComparer在聯盟法annonymouse型

context.PageGroupLangsInSettings 
      .Where(x => x.PageGroupLang.Language.CaltureId == langCaltureId && x.PageGroupLang.PageGroup.Id == pageGroupId) 
      .Select(x => new { x.Key, x.Value, Order = 0 }) 
     .Union(
     context.PageGroupSavedSettingDetails 
      .Where(x => x.PageGroupSavedSettings.PageGroupLangs 
       .Where(y => y.Language.CaltureId == langCaltureId && y.PageGroup.Id == pageGroupId).Any()) 
      .Select(x => new { x.Key, x.Value, Order = 1 }) 
     ).ToList() 

,現在我想比較相互使用IEqualityCompare「關鍵」領域,但我不知道我應該怎麼辦呢。 謝謝:)

+0

[IEqualityComparer for anonymous type]可能重複(http://stackoverflow.com/questions/1071609/iequalitycomparer-for-anonymous-type) – MarcinJuraszek

回答

0

匿名類型的屬性只能在聲明它的方法中訪問。但是,如果您傳遞出方法,訪問成員可能需要使用反射或其他解決方法。相反,你可以嘗試創建一個類來保存投影或使用Dictionary。

+0

我不能使用Dictionary,因爲這段代碼返回了一些相同的鍵值: -S –