Entity framework core 如何利用房地产<;T>;方法处理包含的查询

Entity framework core 如何利用房地产<;T>;方法处理包含的查询,entity-framework-core,Entity Framework Core,我尝试编写一个通用方法来创建对datatables ajax请求的响应 publicstaticresponse-CreateResponse(IQueryable查询,Request-Request),其中T:class { query=query.AsNoTracking(); var=查询; 如果(!string.IsNullOrEmpty(request.Search.Value)) { var keywords=Regex.Split(request.Search.Value,@“\s

我尝试编写一个通用方法来创建对datatables ajax请求的响应

publicstaticresponse-CreateResponse(IQueryable查询,Request-Request),其中T:class
{
query=query.AsNoTracking();
var=查询;
如果(!string.IsNullOrEmpty(request.Search.Value))
{
var keywords=Regex.Split(request.Search.Value,@“\s+”).ToList();
要求
.栏目
.Where(p=>p.Searchable)
托利斯先生()
.ForEach(c=>
关键字.ForEach(k=>
{
filtered=filtered.Intersect(query.Where(p=>EF.Functions.Like)(EF.Property(p,c.Name),$“%{k}%”);
})
);
}
var排序=过滤;
request.Order.ForEach(p=>ordered=p.Dir==“asc”?ordered.OrderBy(q=>EF.Property(q,request.Columns[p.Column].Name)):ordered.OrderByDescending(q=>EF.Property(q,request.Columns[p.Column].Name));
var paged=ordered.Skip(request.Start).Take(request.Length);
返回新响应{draw=request.draw,recordsTotal=query.Count(),recordsFiltered=filtered.Count(),data=paged.ToList();
}
我的问题是,当查询参数为
IIncludableQueryable
EF时,Property方法不能定位子属性

DataTables.CreateResponse(context.Rayons.Include(p=>p.User),参数);
EF.Property.Property(p,“Name”)
正在工作,但是,
EF.Property.Property(p,“User.Name”)
不工作,异常消息是“使用错误的属性名称调用了EF.Property”

抱歉英语不好。

EF.Property是一个bug,您必须指定属性类型,但不能指定实体类型。谢谢#svyatoslav danyliv,但问题在于EF.Functions。比如(EF.Property(p,c.Name),这是属性类型检查此问题