c# - 实体框架搜索具有泛型的多列
问题描述
我正在尝试完成一个在 API 中跨多个控制器使用的搜索功能。我目前也在使用存储库模式。我只会显示存储库的相对部分。
public interface IRepository<T> where T class, IEntity, new()
{
IQueryable<T> Get();
}
我们创建了一个类似于以下内容的 API 端点:
public abstract BaseApiController<T>:ApiController where T:class, IEntity, new()
{
public async Task<IHttpActionResult> GetSearchPage(int pageNumber, string searchText)
{
var properties = typeof(T).GetProperties();
var query = await Repository.Get().Where(t=>
properties.Any(prop => prop.GetValue(t,null).ToString().Contains(searchText))
)
.AsNoTracking()
.ToListAsync();
return Ok(query);
}
}
我收到以下错误:
无法创建类型为“System.Reflection.PropertyInfo”的常量值。此上下文仅支持原始类型或枚举类型。
那么,关于我的问题:如何使用此存储库搜索多个通用列?
解决方案
推荐阅读
- python - 打印嵌套列表时如何摆脱索引错误?
- c# - MVC - 在视图中显示项目列表的问题
- html - 移动设备上的网站元素太小
- javascript - NextJS 组件服务器端渲染,来自调用者组件的参数注入
- python - 将多个数据帧的列转换为日期时间的 Pandas 不能循环工作
- flask - 烧瓶只为一条路线提供 404
- javascript - 谁能解释一下为什么答案是 { name : 'Linda'};
- javascript - 将 fetch 与 express 和 ejs 一起使用会给出 400 个错误请求以及 json 中的意外令牌 <
- visual-studio-code - 尝试在本地启动模式下连接到 vscode-hack 调试器时,可视代码调试器适配器立即死亡
- html - 如何使 flex-wrap 项目内联而不是块?