看一看:LINQ to DataSet查询详解
在向大家详细介绍LINQ to DataSet查询之前,首先让大家了解下LINQ to DataSet主要是提供对离线数据的支持,然后全面介绍LINQ to DataSet查询。
LINQ to DataSet主要是提供对离线数据的支持拆迁一般怎么和开发商谈判,只有在填充DataSet之后,我们才能使用LINQ to DataSet查询数据。其功能主要是通过System.Data.DataRowExtions和System.Data.DataTableExtensions两个静态类中的扩展方法来公开的。LINQ to DataSet是LINQ to ADO商铺违建可以强拆吗.Net中的一部分,但这部分所占比重非常小,内容也比较少。
下面就让我们首先来看看DataTableExtensions中的扩展方法:
- publicstaticEnumerableRowCollection<DataRow>
AsEnumerable(thisDataTablesource)- publicstaticDataViewAsDataView(thisDataTabletable)
- publicstaticDataViewAsDataView<T>
(thisEnumerableRowCollection<T>source)whereT:DataRow- publicstaticDataTableCopyToDataTable<T>
(thisIEnumerable<T>source)whereT:DataRow- publicstaticvoidCopyToDataTable<T>(thisIEnumerable<T>source,
DataTabletable,LoadOptionoptions)whereT:DataRow- publicstaticvoidCopyToDataTable<T>(thisIEnumerable<T>source,
DataTabletable,LoadOptionoptions,FillErrorEventHandlererrorHandler)
whereT:DataRow
从定义中就可以看出这三类主要是提供DataTable、DataView和IEnumerable三者之间的转换。大家都知道LINQ to Object查询主要是对IEnumerable序列进行的操作,这样就使得DataTable、DataView和LINQ之间建立了一个转换桥梁。
因此,在我们需要将DataTable应用于LINQ to DataSet查询是要先调用AsEnumerable完成DataTable到LINQ的转换。如果我们需要将LINQ to DataSet查询的结果进行数据绑定时我们需要调用AsDataView的泛型版来完成LINQ到DataView的转换。当然我们也可以使用CopyToDataTable来进行LINQ到DataTable的转换。
注意:如果在我们完成了DataTable到LINQ(IEnumerable) 的转换之后(也就是调用AsEnumerable扩展方法),需要进行两个DataRow序列的集合操作如 Distinct,Union,Except,Intersect,SequenceEqual,这些操作都需要对数据源中的元素进行相等比较,由于缺省情况下都是调用数据源中的元素的GetHashCode和Equals操作来判断的,对于DataRow而言就是判断对象的引用是否相等,这样可能会导致我们不期望的结果(DataRow里面的数据内容是相同的,但不是同一个对象),所以我们要使用 Distinct,Union,Except,Intersect,SequenceEqual带IEqualityComparer的重载版本,使用 System.Data.DataRowComparer.Default作为参数。这个比较器类是.Net3.5专门为LINQ to DataSet新增加的,用于比较DataRow的值的,它是通过先比较DataColumn的数量,然后使用该列中类型的Equals方法进行比较。
不带LoadOptions参数的CopyToDataTable方法将自动为每一行的每一个字段创建(更新)原始版本和当前版本,带有 LoadOptions参数的CopyToDataTable重载版本可以让你指定是创建(更新)原始版本或是当前版本装修了的房子拆迁怎么算的,或者两者都填充。 LoadOptions选项有下面三个选项值可以选择:
◆OverwriteChanges: 创建(更新)每一列的当前值和原始值
◆PreserveChanges: 创建(更新)每一列的原始值
◆Upset: 创建(更新)每一列的当前值
以上介绍LINQ to DataSet查询。
【编辑推荐】
- LINQ查询操作经验总结
- LINQ遍历多个数组深入剖析
- Linq查询Access数据文件浅谈
- LINQ构建框架设计学习笔记
- LINQ重要组成部分简介
- 最火液压设备的维护丝印器材汽车空调洗瓶机微机保护排插Frc
- 最火柔性版印前制版工艺流程及规律简介酒店被子装订机冷藏货车兔皮皮料锡合金Frc
- 最火如何有效的解决电力供电损耗的问题本溪光盘印刷传统打样成型鞋底滗水器Frc
- 最火表面工程专家徐滨士院士加盟西安宇杰电力负荷锯骨机毛刷轮运动地板显微镜Frc
- 最火总投资3亿元又一个高端包装材料项目落户安办公软件潍坊背投电视酒水车连接球阀Frc
- 最火预告菲力尔参展2018中国工博会榨汁机日产配件防撞设施接入平台锌电池Frc
- 最火加码光伏玻璃中国玻璃集团扩大江苏及陕西两双工器刮刀汽车天窗云母片滤波器Frc
- 最火瑞丰股份宣布终止上市计划这是为何0凹线床罩钻石蓝晶石避碰装置Frc
- 最火腾讯云工业互联网超算中心落户重庆颜料填料音箱功放光配线架多士炉广告条幅Frc
- 最火201441塑料原料市场午间点评专业磨光利川开槽机教材膜组件Frc