ela*_*ani 0 c# asp.net-mvc casting controller converter
我的EFService中的代码:
private IDbSet<Item> _Items;
private int _SearchTakeCount = 10;
public IList<string> SearchByArticleCount(int articleCount)
{
return _Items.AsNoTracking().Where(m => m.Articles.Count().Equals(articleCount))
.Take(_SearchTakeCount)
.Select(m => m.Articles.Count().ToString())
.Distinct()
.ToList();
}
Run Code Online (Sandbox Code Playgroud)
我的控制器中的代码:
public virtual ActionResult AutoCompleteSearch(string term, KeywordSearchBy searchBy = KeywordSearchBy.Name)
{
IList<string> data = new List<string>();
switch (searchBy)
{
case ItemSearchBy.Name:
data = _ItemService.SearchByName(term);
break;
case ItemSearchBy.ArticleCount:
int articleCount = Convert.ToInt32(term);
data = _ItemService.SearchByArticleCount(articleCount);
break;
}
Run Code Online (Sandbox Code Playgroud)
当我运行项目时,异常是有效的.这个例外是:LINQ to Entities无法识别方法'System.String ToString()'方法,并且此方法无法转换为存储表达式.
使ToString()呼叫作为LINQ到对象的查询,EF部分完成后:
public IList<string> SearchByArticleCount(int articleCount)
{
return _Items.AsNoTracking().Where(m => m.Articles.Count().Equals(articleCount))
.Take(_SearchTakeCount)
.Select(m => m.Articles.Count())
.Distinct()
.AsEnumerable()
.Select(x => x.ToString())
.ToList();
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
544 次 |
| 最近记录: |