LINQ 查询子对象 C 尖锐 8 和 asp.net 核心 3.0
LINQ Query Sub-Objects C sharp 8 and asp.net core 3.0
我有一个作用于数据库对象的 LINQ 查询,如下所示
Ticket:
MyTask (list)
MyTask:
Id (int)
Cats (List of Cats)
Status (string)
Cat:
Assignee (string)
context.Ticket
.Where(x => x.Type == "Animal")
.Include(x => x.MyTasks)
.ThenInclude(x => x.Cats);
.Where(x => x.Status != "Collected")
.AsEnumerable()
.Where(x => x.MyTask.Where(y => y.Assignee == User.Identity.Name)) //Doesn't work
.SelectMany(x => x.MyTask.Select(y => new MyModel(y, x.Id)))
.ToList();
这个问题是我不能直接访问y.Assignee == User.Identity.Name.
Cannot convert expression type IEnumerable.<MyProject.Models.MyTask> to return type bool.
我想以基于分配给猫的用户(即 new MyModel(cat, taskId))的 Cat 和任务 ID 创建的对象列表结束。
这是 C sharp 8 和 asp.net 核心 3.0。
所以每张动物类型的票可能有任务 -> 可能有猫对象 -> 可能包括受让人。
修正:
.SelectMany(x => x.MyTask.Where(y => y.Assignee == User.Identity.Name).Select(y => new MyModel(y, x.Id)))
我有一个作用于数据库对象的 LINQ 查询,如下所示
Ticket:
MyTask (list)
MyTask:
Id (int)
Cats (List of Cats)
Status (string)
Cat:
Assignee (string)
context.Ticket
.Where(x => x.Type == "Animal")
.Include(x => x.MyTasks)
.ThenInclude(x => x.Cats);
.Where(x => x.Status != "Collected")
.AsEnumerable()
.Where(x => x.MyTask.Where(y => y.Assignee == User.Identity.Name)) //Doesn't work
.SelectMany(x => x.MyTask.Select(y => new MyModel(y, x.Id)))
.ToList();
这个问题是我不能直接访问y.Assignee == User.Identity.Name.
Cannot convert expression type IEnumerable.<MyProject.Models.MyTask> to return type bool.
我想以基于分配给猫的用户(即 new MyModel(cat, taskId))的 Cat 和任务 ID 创建的对象列表结束。
这是 C sharp 8 和 asp.net 核心 3.0。
所以每张动物类型的票可能有任务 -> 可能有猫对象 -> 可能包括受让人。
修正:
.SelectMany(x => x.MyTask.Where(y => y.Assignee == User.Identity.Name).Select(y => new MyModel(y, x.Id)))