好吧,我正在执行 linq 查询以获取具有相同列的结果列表,然后我需要用新值替换该列值。
第一个代码:
var db = GetContext();
var result = from f in GetContext().ProjectStateHistories
where f.ProjectId.Equals(oldProjectId)
select f;
foreach (var item in result)
{
var projectStateHistoryUpdate = db.ProjectStateHistories.Find(item.Id);
projectStateHistoryUpdate.ProjectId = newProjectId;
db.Entry(projectStateHistoryUpdate).State = EntityState.Modified;
}
db.SaveChanges();
Run Code Online (Sandbox Code Playgroud)
我搜索了一些答案,我发现我可以使用 Select,并创建一个新对象(Linq 用另一个值替换 null/空值)
第二个代码:
var result = (from f in GetContext().ProjectStateHistories
where f.ProjectId.Equals(oldProjectId)
select f).Select(d=> new { Id = d.Id, EventName = d.EventName, LogUser = d.LogUser, ProjectId = newProjectId, TimeStamp = d.TimeStamp });
Run Code Online (Sandbox Code Playgroud)
甚至,第三个代码:
var db = GetContext();
var result …Run Code Online (Sandbox Code Playgroud)