0

我正在尝试以下。我有一个返回存款列表的存储库。我还想获得与存款实体相关的实体(即合同)

我没有完成它。谁能帮我?

这是我的存储库:

public class DepositRepository : Repository<Deposit, int>, IDepositRepository
{
    public DepositRepository(IComPostSession session) : base(session) { }

    public Deposit GetById(int id)
    {
        return this.Query.SingleOrDefault(deposit => deposit.Id == id);
    }

    public IEnumerable<Deposit> GetAllOpenDeposits()
    {
        IEnumerable<Deposit> deposits = this.Query.ToList();

        return deposits;
    }
}

我的存款实体如下所示:

public class Deposit : IEntity<int>
{
    public int Id { get; set; }
    //public string Name { get; set; }
    public DateTime DepositDate { get; set; }
    public int EnvelopeTypeCarrierClassificationId { get; set; }
    public int CarrierCustomerContractVersionId { get; set; }

    public EnvelopeTypeCarrierClassification EnvelopeTypeCarrierClassificiation { get; set; }
    public CarrierCustomerContractVersion CarrierCustomerContractVerision { get; set; }
}

所以当我得到我的存款清单时,我还想要链接的 EnvelopeTypeCarrierClassification 和链接的 CarrierCustomerContractVersion

4

2 回答 2

2

Include会帮助你。

改变你GetById

public Deposit GetById(int id)
{
    return this.Query
               .Include(p => p.EnvelopeTypeCarrierClassificiation)
               .Include(p => p.CarrierCustomerContractVersion)
               .SingleOrDefault(deposit => deposit.Id == id);
}
于 2014-08-11T09:04:07.537 回答
0

有可能。在您的 DataContext Enable LazyLoading中,它按需加载您的链接对象,或者如果您想自己做,您必须使用 Include() 如果您使用 EntityCollection。

例子

myDataContext.MyObjectEntities.Include("MyLinkedEntity").ToList();

ObjectQuery.Include

于 2014-08-11T09:04:39.057 回答