gpt4 book ai didi

c# - 复杂类型引用的 EagerLoad 实体

转载 作者:行者123 更新时间:2023-11-30 21:54:03 25 4
gpt4 key购买 nike

我有一个名为地址的实体。 Address 包含一个复杂类型,称为 House。房屋包含对其居住者的引用。占用者是一个实体。

public class Address {

[key]
public int Id { get; set; }

public House House { get; set; }
}

房子:

[ComplexType] 
public class House
{

[Required]
public string HouseType { get; set; }


public IList<Occupant> Occupants { get; set; }
}

乘员

public class Occupant
{

[key]
public int Id { get; set; }

[Required]
public string Name { get; set; }

public virtual Address Address { get; set; }

}

如果我使用延迟加载,一切正常,我可以访问所有属性。但是,我需要使用 EagerLoading,因为在处理 Context 很久之后还需要实体。

我已尝试使用此代码包含属性:

   // DbSet is of type DbSet<Address>
List<Address> eagerLoadedEntity = DbSet.Where(a => a.Address.StartsWith("a"))
.Include(a => a.House.Occupants).ToList();

我收到以下错误:

A specified Include path is not valid. The EntityType 'Address' does not declare a navigation property with the name 'House'.

最佳答案

也许根本不可能? MSDN Complex Types

Complex types cannot participate in associations and cannot contain navigation properties.

您在“Include”语句中将“Occupants”视为“House”的导航属性,我想这可能是问题所在。

关于c# - 复杂类型引用的 EagerLoad 实体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33540286/

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