使用示例,我有以下两个实体。 OrderEntity包含OrderLineEntites
的集合public class OrderEntity
{
public string Reference { get; set; }
public string Description { get; set; }
public bool Confirmed { get; set; }
[NotMapped]
public int OrderLineCount { get; set; }
[InverseProperty("Order")]
public virtual ICollection<OrderLineEntity> OrderLineEntity__OrderEntity { get; set; }
}
public class OrderLineEntity
{
public string Name { get; set; }
public string Description { get; set; }
}
使用以下代码,我可以为所有已确认的订单加载所有OrderLineEntities。
DbSet<OrderEntity> orderEntity.Where(x => x.Confirmed).Include(x => x.OrderLineEntity__OrderEntity)
我需要做的是使用OrderLine记录的Count设置非映射的OrderLineCount属性(以节省实际加载它们)。
因此,对于每个加载的订单,我都有一个完全填充的实体,包括带有空OrderLine集合的[NotMapped]属性。
建议将不胜感激:) 感谢
答案 0 :(得分:0)
你可以这样做,但你必须改变你的方法。您必须自己手动映射对象:
var query = from a in context.Orders.Where(x => x.Confirmed)
select new OrderEntity
{
Reference = a.Reference,
Description = a.Description,
Confirmed = a.Confirmed,
OrderLineCount = a.OrderLineEntity__OrderEntity.Count
};
return query.ToList();