我将ASP.NET Core 3与Entity Framework Core一起使用。我在为其中一个模型实现搜索字符串时遇到问题。
我的控制器方法如下:
public async Task<IActionResult> IndexPartial(string? searchValue)
{
IQueryable<Student> query = _context.Students;
query = (searchString == null)? query : query.Where(s => s.FullName.Contains(searchValue));
return PartialView(await query.ToListAsync());
}
我的模型类不在数据库中存储FullName
,而仅在FirstName
和LastName
中存储
public class Student
{
public int Id {get; set;}
public string FirstName {get;set;}
public string LastName {get;set;}
public string FullName => FirstName+" "+LastName;
}
我是否必须过滤客户端表,还是使用LINQ有解决方法?
答案 0 :(得分:0)
我找到了一个工作环境。 只需像这样更改控制器方法:
public async Task<IActionResult> IndexPartial(string? searchValue)
{
IQueryable<Student> query = _context.Students;
var list = await query.ToListAsync();
list = (searchString == null)? list : list.FindAll(s => s.FullName.Contains(searchValue));
return PartialView(await list);
}
我认为在修改IQueryable时,只能使用保存在由Entity Framework创建的数据库表中的模型属性,因为操作查询是通过SQL完成的。