Linq中的连续(有条件)Where子句
我正在尝试构造一个Linq语句,用于Sharepoint(2010)对象模型的客户端 这是一段有问题的代码:Linq中的连续(有条件)Where子句,linq,sharepoint,Linq,Sharepoint,我正在尝试构造一个Linq语句,用于Sharepoint(2010)对象模型的客户端 这是一段有问题的代码: var result = news.Where(n => (bool)n["Online"] && ((DateTime)n["StartDate"] <= DateTime.Now && (DateTime)n["StopDate"] >= DateTime.Now)); if (currentUser.IsAgUser())
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);
错误来自哪里?谢谢SharePoint似乎不支持多个位置 便宜的解决方案:
var result = currentUser.IsAgUser()
? news.Where(n => (bool)n["Online"]
&& ((DateTime)n["StartDate"] <= DateTime.Now && (DateTime)n["StopDate"] >= DateTime.Now) && (string)n["Role"] != "AG-ADMIN")
: news.Where(n => (bool)n["Online"]
&& ((DateTime)n["StartDate"] <= DateTime.Now && (DateTime)n["StopDate"] >= DateTime.Now));
var filteredNews = sharepointContext.LoadQuery(result);
var result=currentUser.IsAgUser()
? 新闻。其中(n=>(bool)n[“在线”]
&&((DateTime)n[“StartDate”]=DateTime.Now)和&(string)n[“Role”!=“AG-ADMIN”)
:news.Where(n=>(bool)n[“在线”]
&&((DateTime)n[“StartDate”]=DateTime.Now));
var filteredNews=sharepointContext.LoadQuery(结果);
您可以操作表达式树,但这将是一个非常复杂的代码,查询并不复杂。我知道我有点晚了。我几乎有同样的问题。看起来SharePoint不支持将Linq表达式与AndAlso等组合。
var result = currentUser.IsAgUser()
? news.Where(n => (bool)n["Online"]
&& ((DateTime)n["StartDate"] <= DateTime.Now && (DateTime)n["StopDate"] >= DateTime.Now) && (string)n["Role"] != "AG-ADMIN")
: news.Where(n => (bool)n["Online"]
&& ((DateTime)n["StartDate"] <= DateTime.Now && (DateTime)n["StopDate"] >= DateTime.Now));
var filteredNews = sharepointContext.LoadQuery(result);