如何从两个不同的数据库中检查 productid比较两个列表并返回不匹配的项目以添加

问题描述

我有两个数据库一个是主数据库,另一个添加到购物车。

我想使用主数据库 prodid 检查添加到购物车 prodid。

// here I get an error "data type issue" - that's why I convert to int
var db1prodid = Convert.ToInt32(db1.prod.Select(x => x.prodid).ToList());  

var gg = Convert.ToInt32(db2.prod.Select(x => x.prodid).ToList().ToString());
var checkprodid = db2.prod.Where(x => gg == db1prodid ).ToList();

解决方法

如果你想转换, 更改您的代码,如下所示:

var db1prodid = db1.prod.Select(x =>(int)x.prodid).ToList();

//或

var db1prodid = db1.prod.Select(x =>Convert.ToInt32(x.prodid)).ToList();

无论如何,要比较两个列表并返回不匹配的项目,您可以执行以下操作

var db1prodid = db1.prod.Select(x => Convert.ToInt32(x.prodid)).ToList();

var checkprodid = db2.prod.Where(x => !db1prodid.Contains(x.prodid)).ToList();

它将返回 db2.prod 中不存在于 db1.prod 中的所有行

同理,

var db2prodid = db2.prod.Select(x => Convert.ToInt32(x.prodid)).ToList();

var checkprodid = db1.prod.Where(x => !db1prodid.Contains(x.prodid)).ToList();

它将返回 db1.prod 中不存在于 db2.prod 中的所有行