gpt4 book ai didi

entity-framework - 在 Entity Framework 中包含子对象

转载 作者:行者123 更新时间:2023-12-04 07:26:57 26 4
gpt4 key购买 nike

我想在 IQueryable 列表中包含子对象..

我想在某些表类型 IQueryable 列表的选定列上包含一个子对象..

我试过这样的:

IQueryable<Persons> persons = Context.Persons.Select(x=> new persons{Pkid=x.pkid, FirstName=x.FirstName}).AsQueryable();

persons= persons.Include("Address");

这个子对象的包含不起作用..任何人请帮助...我做错了..非常感谢...

最佳答案

Include 不适用于投影。此外,它不是必需的。只需这样做:

var query = context.Persons
.Select(x => new PersonDto
{
Id = x.pkid,
FirstName = x.FirstName,
Address = x.Address
});

这里有几点:

  • 没有包含
  • Address 在投影中直接访问,EF 会处理这个
  • 我正在使用 PersonDto 作为投影目标。 PersonDto 只有 IdFirstNameAddress
  • 您可以转换到自定义类型或匿名类型,但不能转换到实体类型(映射类型)——它不起作用并且会抛出异常。
  • 如果你想使用映射类型,你不能只返回选定的标量列——所有列将始终被加载。只能有选择地加载导航属性。为了克服这个问题,人们有时会使用 Table splitting但如果您可以将您的大实体划分为分离的实体,那将是可行的。在您的场景中,仅使用投影。

关于entity-framework - 在 Entity Framework 中包含子对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5607244/

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