0

我有以下问题 - 我想根据一个简单的查询和除法计算我的数据库中的一个字段。首先是关于我的数据库结构的一些信息:

|WorkingUnits|-1---------n-|Materials| ei WU 和材料之间的一对多关系。

这是两个表以及它们之间的关系。在 WorkingUnits 表中,我有一个名为 WUAmount 的计算字段。此外,每个工作单元都有一个“价格”。材料也是如此——它们每个都有一个“价格”。最后,我想要实现的是总结分配给特定工作单元的所有材料的所有价格,然后除以工作单元本身的价格。

到目前为止,我正在尝试做的事情如下:

    partial void WUAmount_Compute(ref decimal result)
    {
        //decimal amount = 0;
        IDataServiceQueryable<WorkingUnit> query;
        query = from WorkingUnit in this.DataWorkspace.ApplicationData.WorkingUnits
                where WorkingUnit.Materials != null
                select WorkingUnit;

        foreach (WorkingUnit detail in query)
        {
            result = this.WUPrice / (result + detail.Materials.Sum(s => s.Price).Value);
        }
}

但我得到一个内部异常:

Cannot compare elements of type 'System.Data.Objects.DataClasses.EntityCollection`1'.
Only primitive types, enumeration types and entity types are supported.

我对 Lightswitch 和 LINQ 还很陌生,还无法弄清楚这一点。任何帮助表示赞赏。

4

1 回答 1

2

如果我对您的理解正确,您只需要:

partial void WUAmount_Compute(ref decimal result)
{
   result = (this.Materials.Sum(x => x.Price) / this.WUPrice);
}
于 2013-01-18T15:23:11.357 回答