我想对每个实体中的集合和嵌套集合的字段进行投影,我使用EntityFramework 6.2我已经用动态查询做到了,比如bellow代码
Students.Select("new (Name,Family,new(Category.Name) as Category)");
它是有效的,但当我想在集合上这样做时,它抛出了错误
Students.Select("new (Name,Family,new(Courses.Name,Courses.UnitName) as Courses)");
我想要,它返回结果如下代码返回
Students.Select(std=>new{
std.Name,
Category=new{std.Category.Name},
Courses=std.Courses.Select(co=>new{
co.Name,co.UnitName
})}) ;
如果你有任何想法,请与我分享
使用System.Linq.Dynamic
无法做到这一点。使用System.Linq.Dynamic.Core
(库的一个更高级的分支(是可能的。
相当于您以非动态方式编写的查询:
var q = Students.Select("new (Name, Category.Name as Category, Courses.Select(new (Name, UnitName)) as Courses)");
您想要的只是Courses.Select(new (field1, field2)) as SomeAlias