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 子句中。我相信你应该把它们加倍: && 和 ||

于 2012-08-27T13:22:46.837 回答
0

您是否有机会使用 SomeField 属性创建早期绑定对象,然后有人删除了该字段?

于 2012-08-27T14:04:54.717 回答