我正在尝试以下方法。 我有一个存储库,返回存款列表。 我还想获得与存款实体相关的实体(即合同)
我没有完成它。 任何人都可以帮助我吗?
这是我的存储库:
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
答案 0 :(得分:2)
Include
会帮助你。
将GetById
更改为
public Deposit GetById(int id)
{
return this.Query
.Include(p => p.EnvelopeTypeCarrierClassificiation)
.Include(p => p.CarrierCustomerContractVersion)
.SingleOrDefault(deposit => deposit.Id == id);
}
答案 1 :(得分:0)
有可能性。在您的DataContext中启用 LazyLoading ,它会根据需要加载您的链接对象,或者如果您想自己执行,您必须使用Include(),如果您使用的是EntityCollection。
示例强>
myDataContext.MyObjectEntities.Include("MyLinkedEntity").ToList();