1
我試圖構建一個Linq語句,以便從客戶端使用Sharepoint(2010)對象模型。連續(有條件)Linq中的條款
這是有問題的代碼:
var result = news.Where(n => (bool)n["Online"]
&& ((DateTime)n["StartDate"] <= DateTime.Now && (DateTime)n["StopDate"] >= DateTime.Now));
if (currentUser.IsAgUser())
result = result.Where(n => (string)n["Role"] != "AG-ADMIN");
var filteredNews = sharepointContext.LoadQuery(result);
當執行if
單方面等其他Where
添加到result
,我得到的跟隨着錯誤時LoadQuery
荷蘭國際集團它。
The query expression 'value(Microsoft.SharePoint.Client.ListItemCollection).Where(n => (Convert(n.get_Item("Online")) AndAlso ((Convert(n.get_Item("StartDate")) <= DateTime.Now) AndAlso (Convert(n.get_Item("StopDate")) >= DateTime.Now)))).Where(n => (Convert(n.get_Item("Role")) != "AG-ADMIN"))' is not supported.
錯誤來自哪裏?謝謝
你可以操縱表達式樹,但它會是一個非常複雜的代碼和查詢並不複雜。 – ivowiblo
我知道我有點晚了。我有幾乎相同的問題。它看起來像SharePoint不支持將Linq表達式與AndAlso等結合使用。 – Smokefoot