无法弄清楚如何计算Lightswitch中的计算字段

时间:2013-01-17 09:13:19

标签: linq entity-framework visual-studio-lightswitch computed-field

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

|WorkingUnits|-1---------n-|Materials| e.i 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来说还不太新,但还不清楚。任何帮助表示赞赏。

1 个答案:

答案 0 :(得分:2)

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

partial void WUAmount_Compute(ref decimal result)
{
   result = (this.Materials.Sum(x => x.Price) / this.WUPrice);
}