实体框架&懒加载不起作用

时间:2014-11-27 16:44:18

标签: c# entity-framework ef-code-first lazy-loading entity-framework-6

我有以下型号:

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; }
}

他们都继承自" Model"。模特只有一个id。 一切都很好,但是: 延迟加载似乎无法正常工作。

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

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

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

1 个答案:

答案 0 :(得分:1)

看起来Consignor的构造函数将使用空白的街道,zip等实例化一个新的Address对象(就像你在上一段中提到的那样);如果你删除了Address的实例化,你最终应该在你的Consignor对象上加载一个你可以根据需要懒洋洋地加载的地址。