比较整数列表,并使用结果LinqtoSQL的差异在数据库中添加/删除行
本文关键字:数据库 删除行 添加 LinqtoSQL 列表 整数 结果 比较 | 更新日期: 2023-09-27 17:51:05
目前我正在使用LinqtoSql的一个项目上工作,我想为我当前的问题找到一个更简单的解决方案。
的例子:假设我有一个名为Example
的表,它有三行(值为1,2,4)现在在代码(c#)中,我将这些值作为整数列表(命名为lstExisting
)现在,在我的方法中,我得到了另一个整数列表(比如lstCurrent
)其值为整数(1,2,3)现在我想比较这两个列表并找到整数的差异并更新数据库,因此根据我的示例,应该添加值为3的新行,并删除值为4的现有行。PS:(整数值将始终是唯一的,将是1,2,3,4)最好使用Linq解决方案,但我不介意其他更简单的解决方案。
谢谢
您需要使用Except
查找新项目并删除项目,如:
var newItems = lstCurrent.Except(lstExisting).ToList();
var toBeDeletedItems = lstExisting.Except(lstCurrent).ToList();
之后,您可以迭代每个列表并相应地添加/删除。
尝试使用Contains()
。有了两个列表,你可以这样写。它所做的是迭代方法列表中的每个项,并检查原始项是否在那里。
var lstExisting = getExistingList();
var lstCurrent = getCurrentList();
foreach(var currentInt in lstCurrent)
{
if(!lstExisting.Contains(currentInt))
{
//insert currentInt
}