1、使用两个数据表Dk_SyDlCxInfo和testTable,当然多个也行,只不过需要使用多个Join,表大家随意建就是了,可以通过一个字段对两个表进行连接,而我使用两个字段来确定唯一性
2、使用的linq to sql类,这个已经淘汰多少年了,不过没事,EFCore中一样用,我之前学的linqtosql,现在使用EFCORE也很快上手,基本没什么区别
3、直接写,因为太简单,勿喷:
DataClasses1DataContext db = new DataClasses1DataContext();//获取库
var mydb = db.Dk_SyDlCxInfo
.Join(db.testTable, e => e.XiaoQu, j => j.campus, (e , j) => new { e,j}).Where(p=>p.e.XiaoQu==p.j.campus && p.e.Lhao==p.j.buildingNumber);
//首先Join的第一个参数需要给个表,然后做笛卡尔积,然后new一个新的表,表中就是两个表的笛卡尔集,接着通过where增加连接条件,我加个两个条件来确定数据
//第二个参数是指的第一个表Dk_SyDlCxInfo,第三个参数是指的第二个表testTable
Console.WriteLine(mydb.Count());//mydb中数据行
foreach (var item in mydb)
{
Console.WriteLine(String.Join("-", item.e.XiaoQu.Trim(), item.e.Lhao, item.e.LjDl, item.j.campus, item.j.buildingNumber, item.j.iIp));//打印多表查询中的个别数据
}
//笛卡尔积是a集合乘b集合,(强调的是乘这个动作),笛卡尔集是做笛卡儿积运算后形成的集合,要严谨
//List<addressip> addressipList = db.addressip.Where(d=>d.address_ipid !=null && d.address_ip !=null).ToList();
//List<roominfo> roominfoList = db.roominfo.ToList();
// var table_temp = roominfoList.Join(addressipList, e => e.address_ipid, f => f.address_ipid, (e, f) => new { e, f })
// .Where(p => p.e.address_ipid == p.f.address_ipid)
// .Select(a => new { a.e.campus_name, a.e.building_name, a.e.meter_number, a.f.address_ip });
// //foreach (var item in table_temp)
// //{
// // Console.WriteLine(String.Join("--", item.campus_name, item.building_name, item.meter_number, item.address_ip));
// //}
// //Console.ReadLine();