1

重複の可能性:
LINQ の Where ステートメント内のエラー

特定の DateTime 以降に変更されたすべての見積もりの​​リストを取得する必要があります (エクスポートの理由により)。

もちろん、見積もりの​​詳細が変更された場合、見積もり自体が変更されていなくても、見積もりもエクスポートする必要があります。

私はこれをT-SQLで次のように非常に簡単に解決します:

Select q.QuoteNumber from quote q inner join quotedetails qd on q.quoteid = qs.quoteid
where ((q.lastmodified > ?1) or (qd.lastmodified > ?1)) and (qd.SomeField = 'OK')

ただし、Linq to CRM 2011 では、制限に遭遇しました。

var quotelist = from q in xrm.quoteSet
join qd in xrm.quoteDetailSet
on q.QuoteId equals qd.QuoteId.Id
where (q.lastmodified > ?1 | qd.lastmodified > ?1) & qd.Somefield == "OK"

select q.QuoteNumber

Quote エンティティには属性 SomeField がないことが示されています。

参考までに、これは問題を示すクエリの例にすぎません。実際のクエリで Quote と QuoteDetail を切り替えることができません。

T-SQLクエリ (そのまま) をCRM 2011のLinqクエリに変換する最もクリーンな方法は何ですか?

4

2 に答える 2

0

MSDN のサンプルはご覧になりましたか? プレフィックスが QouteDetail ( qd .Somefield )を参照しているときに、Quote エンティティで "属性なし" というエラーが発生する理由がわかりません。

他に疑わしいと思われるのは、単一の & と | だけです。where句で。&& と || を 2 倍にする必要があると思います。

于 2012-08-27T13:22:46.837 に答える
0

SomeField 属性を使用して事前にバインドされたオブジェクトを作成し、その後誰かがフィールドを削除した可能性はありますか?

于 2012-08-27T14:04:54.717 に答える