【发布时间】:2020-11-24 16:50:52
【问题描述】:
面临比较两个模型列表的问题。
public class Relations
{
[key]
public int Id { get; set; }
public int CounterpartyId { get; set; }
public int CounterpartyTypeId { get; set; }
public int DebTypeId { get; set; }
}
我有方法从前端获取此模型的列表并从数据库中获取列表。当来自前端的模型没有 id 时,我没有将 id 添加到这个模型中。 例如:
var models = new List<Relations>()
{
new Relations
{
CounterpartyId = 1,
CounterpartyTypeId = 1,
DebTypeId = 1
},
new Relations
{
CounterpartyId = 1,
CounterpartyTypeId = 2,
DebTypeId = 1001
}
};
var entity = new List<Relations>()
{
new Relations
{
CounterpartyId = 1,
CounterpartyTypeId = 1,
DebTypeId = 1
},
};
如何比较这两个模型列表???我需要插入具有(CounterpartyId = 1,CounterpartyTypeId = 2,DebTypeId = 1001)的模型
为了避免db中的重复,我尝试了
IEnumerable<Relations> toInsert = models.Except<Relations>(entity);
试试
var test=(from m in models select m).Except(entity).ToList();
但它们是相同的,无法找到不在数据库中的数据
【问题讨论】:
-
您可以添加自定义比较器;见here。您可以使用它来确定类中的哪些字段构成匹配项。