我想对每个实体中我的集合和嵌套集合的字段进行投影, 我使用EntityFramework 6.2 我已经通过波纹管代码之类的动态查询来做到这一点
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
})}) ;
请与我分享您的想法
答案 0 :(得分:1)
您无法使用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