8

何らかの理由で、商談エンティティに「firstname」が存在しないと言われています。ただし、SystemUser エンティティに対して設定されています。なぜそれが混乱しているのですか?ありがとう!

            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["new_leadstatus"].Equals("100000004") && u["lastname"].Equals(rsmLastName) && u["firstname"].Equals(rsmFirstName)
                             select new
                             {
                                 AccountId = !r.Contains("accountid") ? string.Empty : r["accountid"],
                                 Account = !r.Contains("name") ? string.Empty : r["name"]
                             });
4

2 に答える 2

11

Microsoft のガイドラインに従ってwhere、各句をそれぞれの行に入れるようにしてください。

where句は、多くの場合ブール式を使用して、結果にフィルターを適用します。フィルターは、ソース シーケンスから除外する要素を指定します。各where句には、単一のエンティティ タイプに対する条件のみを含めることができます。複数のエンティティを含む複合条件は無効です。代わりに、各エンティティを個別のwhere句でフィルター処理する必要があります。

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["new_leadstatus"].Equals("100000004")
                where u["lastname"].Equals(rsmLastName) && u["firstname"].Equals(rsmFirstName)
                select new
                {
                    AccountId = !r.Contains("accountid") ? string.Empty : r["accountid"],
                    Account = !r.Contains("name") ? string.Empty : r["name"]
                };
于 2012-05-30T17:20:21.233 に答える
2

Opportunity エンティティへの参照を 'r' として定義していますが、'u' から firstname を読み取ろうとしています

from r in gServiceContext.CreateQuery("opportunity")

u["firstname"]

どこへ行くかの終わりを変える

r["firstname"].Equals(rsmFirstName)
于 2012-05-30T16:51:43.147 に答える