请问一下,Database,ADO.NET,C#,和LINQ之间的关系式什么?

2024-11-28 22:00:07
推荐回答(1个)
回答1:

我写一个简单的LINQ 转 List 泛型的类,给你参考: public List myc = new List(); public struct myclass{public string ManfaceCode; public string ProductNumber; public double ExpectedNumber; } public void ReturnHList() //vw_生產報關系統_檔案H 視圖{DataClasses1DataContext dclass = new DataClasses1DataContext(); List myv = (from cc in dclass.COPTCs //COPTCs 是一个表 join cd in dclass.COPTDs on new { cc.TC001, cc.TC002 } //COPTDs 这也是一个表equals new{TC001 = cd.TD001, TC002 = cd.TD002}into xfrom cf in x.DefaultIfEmpty() join ma in dclass.MOCTAs //MOCTAs 这也是一个表on new{cf.TD001, cf.TD002, cf.TD003}equals new{TD001 = ma.TA026, TD002 = ma.TA027, TD003 = ma.TA028}where ((new char?[] { 'Y', '陪森y' }).Contains(ma.TA013) && new char?[] { 'Y', 'y' }.Contains(cc.TC027) ) select new{工單單別 = ma.TA001, 工單單號 = ma.TA002, 成品品號 = ma.TA006, 預計產量 = ma.TA015//ma}/////okinto myselect new myclass{ManfaceCode=my.工單單別+my.工單單號, ProductNumber = my.成品品號, ExpectedNumber = Convert.ToDouble(my.預計產量), } 以上的查询语句应该包括大部分SQL查询的内容了,语句用到了多字段、多表、多条件,如果你细心你会发现LINQ 生成语句其实就是一个芦肢亩查询的SQL,这就是说LINQ 和ADO的本质应该是饥段相同的,都是用SQL去读取表,然后返回数据集。然后接下来的就是把这个List转成DataTable了,这个对你来说估计不难吧?直接用for循环写进去了。 至于ADO.NET 转 LINQ ,道理是一样的,你把DataTable 转成List,然后再用LINQ 去读这个List 了。这里就不写了。写了这么多,可以了吗?原创哦。