LINQ查询用于设置集合中的值

时间:2016-09-20 13:44:41

标签: c# linq

我使用LINQ查询

获得ProposalNumber的总和
(from item in context.Target.Transaction
where item.Month >= detailsDaily.Month && item.Month <= parameter.Month
select item.ProposalNumber).Sum();

现在我想在上个月之间将值ProposalNumber设置为0,因为我用于选择。请建议LINQ查询应该是什么?

1 个答案:

答案 0 :(得分:0)

如果您有以下数据列表:

var data = context.Target.Transaction
    .Where(m => m.Month >= detailsDaily.Month 
        && m.Month <= parameter.Month)
    .ToList();

然后你可以找到像:

var sum = data.Sum(m => m.ProposalNumber);

您可以将ProposalNumber设置为0,如:

data.ForEach(m => m.ProposalNumber = 0);

注意:如果您正在使用Entity Framework(正如我想的那样),如果您有太多行,那么加载所有数据可能会很昂贵。如果您没有大量数据并且选择这种方式来更新数据,则必须在设置值后调用context.SaveChanges()进行更改。您还应确保context.Configurations.AutoDetectChangesEnabled设置为true。我建议在这种情况下使用Raw SQL queries而不是此选项。