Если у вас есть список данных, как показано ниже:
var data = context.Target.Transaction
.Where(m => m.Month >= detailsDaily.Month
&& m.Month <= parameter.Month)
.ToList();
Тогда вы можете найти Sum как:
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 в таких сценариях, а не эту опцию.
LINQ ** NOT ** для обновления данных. Если у вас есть набор результатов, которые вы хотите обновить, вы должны пропустить их и обновить свойство, которое вы хотите изменить ... конечно, вам нужно убедиться, что у вас есть ссылка на оригинал, а не на копию объект, который вы пытаетесь изменить – musefan
@musefan, я спрашивал что-то, о чем говорится ниже. Является ниже запрос не LINQ? – user2318170
Ну, бит, где вы * запрашиваете * данные ... но 'ForEach' не является частью LINQ. Это всего лишь метод для 'List' –
musefan