转换为视图模型,使用相关实体的EF Partial Class计算属性返回0

时间:2013-03-05 22:54:04

标签: c#-4.0 entity-framework-5

我正在使用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.。

我认为这与我从基类继承的事实有关,但有人可以对此有所了解吗?

1 个答案:

答案 0 :(得分:0)

我不认为原因是继承。更可能的原因是AllocatedContainers是空集合(在创建视图模型的实例时不指定它)。