gpt4 book ai didi

entity-framework - 急切加载包括派生类的导航属性

转载 作者:行者123 更新时间:2023-12-01 05:31:17 24 4
gpt4 key购买 nike

示例类结构

class Order
{
public int Id { get; set; }
public DateTime Date { get; set; }

public List<OrderDetail> Details { get; set; }
}

class OrderDetail
{
public int Id { get; set; }
public int Qty { get; set; }

public Item Item { get; set; }
}

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

class ElectronicItem : Item
{
public MoreDetail Detail { get; set; }
}

class MoreDetail
{
public int Id { get; set; }
public string SomeData { get; set; }
}

为了用所有导航属性填充订单对象,我写了
context.Orders.Include("Details").Include("Details.Item")

我也想加载 MoreDetail 对象,因此我尝试
context.Orders.Include("Details").Include("Details.Item.Detail")

它没有用。如何加载完整的 Order 对象?

最佳答案

目前不可能,但它是社区在 User DataVoice 上要求的功能正如你已经发现的那样。 MS Connect上也有相关的bug .

您根本无法预先加载派生类型的导航属性,但可以使用单独的查询加载它们:

var moreDetails = context.MoreDetails;

EF 应该自动修复您的导航属性。如果您对原始查询中的订单使用过滤,则还必须在更多详细信息查询中应用该过滤器:
var moreDetails = cotnext.MoreDetials.Where(m => m.Item.Order ....);

关于entity-framework - 急切加载包括派生类的导航属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11009529/

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