gpt4 book ai didi

c# - 如何使用 Linq 选择具有一对多关系的所有对象

转载 作者:行者123 更新时间:2023-11-30 12:39:53 26 4
gpt4 key购买 nike

我有两个表:

CREATE TABLE Thing (
Id int,
Name nvarchar(max)
);

CREATE TABLE SubThing (
Id int,
Name nvarchar(max),
ThingId int (foreign key)
);

我想选择所有具有 SubThings 列表的事物并将它们设置为 ThingViewModel。

Thing ViewModel 很简单:

public class ThingViewModel
{
public int Id { get; set; }
public string Name { get; set; }
public List<SubThingViewModel> SubThings { get; set; }
}

SubThingViewModel 是:

public class SubThingViewModel
{
public int Id { get; set; }
public string Name { get; set; }
}

我已经选择了这样的事物记录:

List<ThingViewModel> things = null;
things = _context.Things.OrderBy(b => b.Name)
.Select(b => new ThingViewModel
{
Id = b.Id,
Name = b.Name
}).ToList();

如何将 SubThings 添加到查询和 ViewModel?

最佳答案

您可以使用 SubThings 进行另一个投影 navigation property :

things = _context.Things.OrderBy(b => b.Name)
.Select(b => new ThingViewModel
{
Id = b.Id,
Name = b.Name,
SubThings =b.SubThings.Select(st=>new SubThingViewModel{Id =st.Id,...}).ToList()
}).ToList();

关于c# - 如何使用 Linq 选择具有一对多关系的所有对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43683677/

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