我正在使用EF 5并且拥有一个我在部分类中定义的新属性来扩展基础数据库字段。它需要从相关表中求和数据。
[Display(Name = "Qty Allocated")]
public decimal QtyAllocated
{
get { return this.AllocatedContainers == null ? 1 : this.AllocatedContainers.Sum(a => a.AllocatedQty); }
//get { return 2;}
}
此属性返回正确的值....但是,如果我然后使用以下方法将其转换为视图模型,则返回的值为0.请注意,视图模型继承自类:
public class InventoryContainerDetailListViewModel : InventoryContainerDetail
方法:
public IEnumerable<InventoryContainerDetailListViewModel> ConvertClassToViewModel(IEnumerable<InventoryContainerDetail> entityList)
{
IEnumerable<InventoryContainerDetailListViewModel> itemGrid =
from l in entityList.ToList()
select new InventoryContainerDetailListViewModel()
{
Id = l.Id,
InventoryContainerHeaderId = l.InventoryContainerHeaderId,
PONbr = l.ReceiptDetail == null ? (int?)null : l.ReceiptDetail.PODetail.POHeaderId,
ReceiptDetailId = l.ReceiptDetailId,
ItemId = l.ItemId,
ItemDescription = l.Item.ShortDescription,
QtyInContainer = l.QtyInContainer,
//QtyAllocated = l.AllocatedContainers == null ? 0 : l.AllocatedContainers.Sum(a => a.AllocatedQty),
Location = l.InventoryContainerHeader.Location.DisplayLocation
};
return itemGrid;
}
在此方法中,输入参数entityList确实显示具有正确计算值的每个项目,但在转换后,该值始终为0.。
我认为这与我从基类继承的事实有关,但有人可以对此有所了解吗?
答案 0 :(得分:0)
我不认为原因是继承。更可能的原因是AllocatedContainers
是空集合(在创建视图模型的实例时不指定它)。