对于方法 String.Contains,只支持可在客户端上求值的参数。 -这是咋回事?
对于方法 String.Contains,只支持可在客户端上求值的参数。 --这是怎么回事?.
代码如下:
------解决方案--------------------
Linq to SQL限制了一些方法。你可以考虑使用join等它支持可以直接转换为T-SQL语句的方法。
如果一定要使用它不支持的计算方法,你可以先使用Linq to SQL查询出可以查询的那些结果,然后在结果的 ToList() 的基础上再用一条 Linq to object查询来继续你的计算。
不过应该首先改为它支持的查询方法为好。
代码如下:
- C# code
var select = from ar in adc.Articles from au in adc.Authors where ar.ShowTime > timeset && ar.AuthorType == typeid && ar.Author.Contains(au.Name) == true && ar.Title.Contains(au.Name) == true orderby ar.ShowTime descending select new { arid = ar.Id, ar.Code, ar.Title, ar.ShowTime, auid = au.Id, au.Name, au.PinYin, au.GoUrl }; foreach (var item in select) { AuthorArticle aa = new AuthorArticle(); aa.ArticleId = item.arid; aa.ArticleCode = item.Code; aa.ArticleTitle = item.Title; aa.ArticleShowTime = item.ShowTime; aa.AuthorId = item.auid; aa.AuthorName = item.Name; aa.AuthorNamePY = item.PinYin; aa.AuthorGoUrl = item.GoUrl; aalist.Add(aa); }
------解决方案--------------------
Linq to SQL限制了一些方法。你可以考虑使用join等它支持可以直接转换为T-SQL语句的方法。
如果一定要使用它不支持的计算方法,你可以先使用Linq to SQL查询出可以查询的那些结果,然后在结果的 ToList() 的基础上再用一条 Linq to object查询来继续你的计算。
不过应该首先改为它支持的查询方法为好。