gpt4 book ai didi

c# - Entity Framework Core 3.0 - Include 中使用的 Lambda 表达式无效

转载 作者:行者123 更新时间:2023-12-03 14:36:27 27 4
gpt4 key购买 nike

下面我在 LINQ Includes 中使用 lambda 表达式 1 级,使用三个实体获取客户列表,主要的一个是所有客户,只有 2 个属性 Id 和 bool:IsCompany,第二个只有那些公司,而第三个只有那些个人。下面的代码使用 .Net Core 2.2 工作,当我更新到 3.0 时它停止工作,我能找到的大多数是多级解决方案,例如 包含 -> 然后包含 不能在这里工作。
和版本3.0 breaking changes不提这个案子。

    public async Task<ActionResult<IEnumerable<CustomersListVM>>> GetCustomers()
{
List<CustomersListVM> customerList = await _context.Customers
.Include(p => p.Company.Name)
.Include(p => p.Individual.Name)
.Select(p => new CustomersListVM
{
Id = p.Id,
CustomerId = p.CustomerId,
Name = p.IsCompany == true ? p.Company.Name : p.Individual.LastName + ' ' + p.Individual.FirstName
}).ToListAsync();

return customerList;
}

任何的想法 ?

最佳答案

Include子句用于检索相关对象。应使用指定链接实体的 lambda 调用这些方法,但不说明 .Name (因为这是一个属性):

.Include(p => p.Company)
.Include(p => p.Individual)

然后在 Select方法,您指定您只需要 Name公司/个人。

关于c# - Entity Framework Core 3.0 - Include 中使用的 Lambda 表达式无效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59418278/

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