2

LINQ to CRM クエリを使用して個別のセットを選択しようとしていますが、引き続き重複したレコードが返されます。私が使用しているクエリは次のとおりです。

  var linqQuery = (from r in gServiceContext.CreateQuery("opportunity")
                   join c in gServiceContext.CreateQuery("account") on ((EntityReference)r["accountid"]).Id equals c["accountid"]
                   join u in gServiceContext.CreateQuery("systemuser") on ((EntityReference)r["ownerid"]).Id equals u["systemuserid"]
                   where (r["statuscode"].Equals("100000004") || r["statuscode"].Equals("100000003")) && r["statecode"].Equals("Open")
                   where u["internalemailaddress"].Equals(_currentUser.Email)

                       select new
                           {
                                 AccountId = !c.Contains("accountid") ? string.Empty : c["accountid"],
                                 Account = !c.Contains("name") ? string.Empty : c["name"]
                             }).Distinct();

仕事をするために何かが欠けてい.Distinct()ますか?または、それを行うより良い方法はありますか?

4

2 に答える 2

1

指定されたものを使用してくださいIEqualityComparer<T>: http://msdn.microsoft.com/en-us/library/bb356803

IEqualityComparer<T>もう1つ、匿名クラスが実装をサポートしているかどうかはわかりません。

于 2012-06-06T15:37:16.220 に答える