我需要获取自某个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 查询(按原样)转换为 Linq 查询 CRM 2011 的最简洁方法是什么?
答案 0 :(得分:0)
你看过the MSDN samples了吗?当你的前缀引用QouteDetail( qd .Somefield)时,我很困惑你为什么在Quote实体上收到错误“no attribute”
唯一看起来可疑的是你的单身&和|在where子句中。我相信你应该把那些加倍:&&和||
答案 1 :(得分:0)
您是否有可能使用SomeField属性创建早期绑定对象,然后有人删除了该字段?