技术开发 频道

实现LINQ数据信息筛选


   该操作会在项目中增加一个Customer.cs文件,如图5和6:
   图5:

   图6:


   请注意分部类型CustomerDataContext,他是LINQ王国的关键所在。如果您退回到图2步骤3,我们在那就引用到它。这就是我们到数据库的连接,因此托拽到Customer.dbml的表、存储过程、函数都会经由它。它对于写LINQ查询很重要,可以从MSDN中用“DataContent”类找到相关细节。通过intellisence我们可以浏览到如图7中DataContext可能关系到的内容:



   关于DataContext到此结束。回到图2的步骤4,它是一个采用var的LINQ查询,隐式类型var是C# 3.0的新特性,您可以在LINQ的文档和示例中种随处发现var的使用。

var query = from ct in context.customers 
select ct.customer_type;
   这个查询语法有悖于任何熟悉T-SQL人员的直观感觉——先FROM子句再是SELECT.我猜这是初入LINQ领域人员遇到的最大障碍。但这有缘由,我会把这个讨论流到以后某些时候。能编译通过就说明那个LINQ语法是对的。

我们从Customer表返回的是一组Cutomer类型集合,就像用T_SQL写“SELECT Customer_TYPE FROM Customer”一样。

从T-SQL语句您会发现我们是要返回所有Customer类型,不过有点瑕疵——会返回重复的记录。没错,我们实际需要的是“select distinct customer_type from customer”,这样问题就是怎么做到?我猜我们大部分人用T-SQL会比用LINQ语法快得多的写出来。因此,我也会这么建议,不过遗憾的是我不清楚是否会有把T-SQL转换为LINQ的工具,有的话别忘了知会我。
0
相关文章