实体框架和延迟加载不起作用

本文关键字:不起作用 延迟加载 框架 实体 | 更新日期: 2023-09-27 18:32:12

我有以下模型:

public sealed class Consignor : TwoNames
{
    public Consignor()
    {
        Address = new Address();
    }
}

它的母类 TwoNames 看起来像这样:

public abstract class TwoNames : Search
{
    [Required]
    public int AddressId { get; set; }
    public virtual Address Address { get; set; }
    [Required]
    public string Name1 { get; set; }
    public string Name2 { get; set; }
}

我的地址模型在这里:

public class Address : Model
{
    [Required]
    public string Street { get; set; }
    [Required]
    public string ZipCode { get; set; }
    [Required]
    public string City { get; set; }
    public string Country { get; set; }
    public string Email { get; set; }
}

它们都继承自"模型"。模型只有一个 ID。一切正常,但是:延迟加载似乎不起作用。

我正在像这样加载发货人:

List<Consignor> consignors = UnitOfWork.ConsignorRepository.Get().ToList();

所有发货人都获得了正确的 AddressID 并且地址不为空(我猜是因为我在 Consignor 类中的构造函数),但 Address 属性未正确填写(没有街道、没有邮政编码等)。

实体框架和延迟加载不起作用

看起来发货

人的构造函数将实例化一个新的地址对象,其中包含空白街道、zip 等(如您在上一段中提到的); 如果删除 Address 的实例化,则最终应该在 Consignor 对象上生成一个未加载的 Address,您可以根据需要延迟加载该地址。