我一直在研究如何在c#项目中正确实现波纹管任务。
它被预先考虑......
获取特定数据库表(db1)中存在但在其他特定数据库表(db2)上不存在的所有数据
两个表都有共同的ID
我已经面临很多关于此的帖子,但似乎没有解决我的问题。 有什么帮助吗?
编辑:
Select all data
on table_x from database_x
Where item_id from table_x are not found inside table_y from database_y
=>以列表格式返回数据
答案 0 :(得分:5)
这是我正在寻找的解决方案。基于@ user1949706的回答,我选择了两个表中的所有数据和LINQ(也来自不同的数据库),我将它放在内存中。
要完全回答我关于如何使用LINQ执行此操作的问题,请执行以下操作:
//DB1
db1DataContext db1 = new db1DataContext();
//DB2
db2DataContext db2 = new db2DataContext();
//SELECT ALL DATA FROM DB1
var result1 = (from e in db1.Items
select e
).ToList();
//SELECT ALL DATA FROM DB2
var result2 = (from e in db2.Item2s
select e
).ToList();
//SELECT ALL ELEMENTS FROM DB2.TABLE THAT DO NOT EXISTS ON DB1.TABLE BASED ON EXISTING ID's
var resultFinal = ( from e in result1
where !(from m in result2
select m.Id).Contains(e.Id)
select e
).ToList();
我还要感谢罗伯特·罗斯(Robert Rouse)向this question和其他所有试图提供帮助的人致敬。
希望它可以帮助别人!
答案 1 :(得分:2)
根据this回答,您可以使用LINQ将表连接到不同的数据库。甚至加入服务器。
另一个选择是读取内存中所需的所有数据并将两个表连接到内存中(您仍然可以使用LINQ)。