实体框架和延迟加载不起作用
本文关键字:不起作用 延迟加载 框架 实体 | 更新日期: 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,您可以根据需要延迟加载该地址。