【发布时间】:2015-08-19 18:37:26
【问题描述】:
var results =
(from p in DBContext.Sources
orderby p.AccountTypeId
group p by new { p.AccountTypeId } into g
select new ObjectItem
{
AccountTypeId = g.Key.AccountTypeId,
Packages =
(from pkg in g
group pkg by new
{
pkg.PackageId,
pkg.Enabled
} into pg
select new ATSourcePackageItem
{
PackageId = pg.Key.PackageId,
DisplayName = pg.Key.DisplayName,
CategoryId = pg.Key.DisplayCategoryId,
Prices =
(from pr in pg
group pr by new { pr.Fpt, pr.Price } into prg
select new ATSourcePriceItem
{
FPT = prg.Key.Fpt,
Amount = prg.Key.Price
})
})
}).ToList();
当CategoryId 等于 7 并且条件为真时,我想将 Amount 减去 10。
是否可以在此 linq 查询中以某种方式执行此操作,因为 Amount 对象没有设置器,这是我可以编辑值的唯一地方。
例如,如果我执行以下操作:
Amount = prg.Key.Price - 10
我能够得到我想要的值,但我还想为特定类别设置它,如果布尔值为 true。
【问题讨论】:
-
“Amount 对象没有设置器”那么您如何在此查询中设置它?它是一个构造函数参数吗?
标签: c# linq entity-framework linq-to-sql linq-to-entities