前面谈了弱类型 DataSet,可以发现它不能受 IntelliSense 支持,我们仍然需要记住字段名称,尤其是利用 SQL 语句填充 DataSet 时。那么能不能让 LINQ to DataSet 更高级点呢?可以,用强类型 DataSet。
首先,在 App_Code 中新建一个“数据集”项,我们命名为 DataSet1.xsd,并打开它。
其次,在数据库资源管理器中连接数据库,并展开“表”,然后将某个/些表(我们这里是 TranTable)拖到 DataSet1.xsd 的界面中,也可以只拖需要的字段,保存 DataSet1.xsd。
最后,使用 LINQ 吧,代码如下:
这回轻松了很多,并且 DataSet1、DataSet1TableAdapters、TranTableTableAdapter 等都是受 IntelliSense 支持的,我们只需要输前面的几个字母,就会有提示。
弱类型 DataSet 和强类型 DataSet 在性能上肯定是有区别的,但这种区别非常细微,完全可以忽略不计,总的来说强类型 DataSet 应用起来简单,不容易出错,所以推荐它。