gpt4 book ai didi

c# - 使用 LINQ 连接连接表中的列

转载 作者:太空宇宙 更新时间:2023-11-03 16:00:26 25 4
gpt4 key购买 nike

我有 3 EF 实体:AppealAppealPersonPerson

AppealPerson 实体由 AppealPerson 实体加入(多对多关系)。我想选择具有串联人员全名的上诉。

+----------+----------+--------------------------------------------------+
| AppealId | Appeal.* | Person.Surname + Person.Name + Person.MiddleName |
+----------+----------+--------------------------------------------------+
| 1 | ..info.. | Aaa Aaa Aaa, Bbb Bbb Bbb, Ccc Ccc Ccc |
+----------+----------+--------------------------------------------------+
| 2 | ..info.. | Aaa Aaa Aaa, Bbb Bbb Bbb |
+----------+----------+--------------------------------------------------+

现在我正在使用这个查询:

context.Appeals
.Select(a => new
{
Appeal = a,
Persons = a.AppealPersons
.Select(ap => ap.Person)
.Select(p => new { p.Surname, p.Name, p.MiddleName })
.ToList()
})
.AsEnumerable()
.Select(a => new
{
Id = a.Appeal.Id,
Persons = a.Persons.Select(p => string.Format("{0} {1} {2}", p.Surname, p.Name, p.MiddleName).Trim()),
})
.ToList<object>();

这个查询很慢。在 30 秒内生成约 500 行的列表。请帮助优化查询。

最佳答案

尝试连接,例如:

from a in context.Appeals
join ap in context.AppealPerson
on a.Id equals ap.AppealId
join p in context.Person
on p.Id equals ap.PersonId
...

关于c# - 使用 LINQ 连接连接表中的列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21698405/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com