【发布时间】:2019-10-27 12:59:14
【问题描述】:
当我从另一个来源查询上下文时,我希望更新列表中的值
我可以通过 2 种不同风格的查询找到匹配项
var r = from aa in context.Persons.GetItems()
join bb in findPersonViewModel.findPersonResultsViewModel on aa.PersonId equals bb.PersonID
select aa;
或
var results = context.Persons.GetItems().Where(ax => findPersonViewModel.findPersonResultsViewModel.Any(b => ax.PersonId == b.PersonID));
为了简单起见,我缩短了模型
public class FindPersonResultsViewModel
{
public int PersonID { get; set; }
public bool ExistInContactManager { get; set; }
public bool ActionType { get; set; }
}
public class PersonViewModel
{
public int PersonID { get; set; }
}
目标:如果 PersonID 匹配,则更新 FindPersonResultsViewModel 以将 ExistinContactManager 和 ActionType 都设为 True
这是视觉数据的示例
var findPersonResultsViewModel = new List<FindPersonResultsViewModel>()
{ new FindPersonResultsViewModel { PersonID = 2, ActionType = false, ExistInContactManager = false },
new FindPersonResultsViewModel { PersonID = 3, ActionType = false, ExistInContactManager = false },
new FindPersonResultsViewModel { PersonID = 4, ActionType = false, ExistInContactManager = false },
new FindPersonResultsViewModel { PersonID = 5, ActionType = false, ExistInContactManager = false },
new FindPersonResultsViewModel { PersonID = 6, ActionType = false, ExistInContactManager = false },
};
var personModel = new List<PersonViewModel>()
{ new PersonViewModel { PersonID = 2 },
new PersonViewModel { PersonID = 6 },
new PersonViewModel { PersonID = 8 },
new PersonViewModel { PersonID = 9 },
new PersonViewModel { PersonID = 12 },
new PersonViewModel { PersonID = 22 },
new PersonViewModel { PersonID = 32 },
new PersonViewModel { PersonID = 42 },
};
【问题讨论】:
-
为所包含的数据、课程和努力点赞
-
Linq 用于查询(过滤、加入等,最终目标是选择某些内容),而不是更新
-
@RufusL 是的,但是我已经插入了。明白了。如果我现在想更新记录并且基本上我有 2 个列表,我找到了记录,我该如何更新?某种类型的循环?例子?
-
@RufusL,这不取决于使用吗?是什么阻止我继续查找匹配项和
Select(地图)并保存更改的管道? -
@ChiefTwoPencils 这就是我的想法……
标签: c# .net list linq collections