在本系列中,主要介绍LINQ to SQL基础的东西,因为LINQ太强大了,它对我 们平常使用不同的数据源有着不同的内容,其包括对于SQL Server 数据库的 LINQ to SQL;对于XML 文档的LINQ to XML;对于 ADO.NET 数据集的LINQ to DataSet;对于.NET 集合、文件、字符串等的LINQ to Objects。例外也出现了 一些对LINQ支持的开源项目,例如LINQ to JSON,LINQ for NHibernate等等。 在这个系列中,一些关于LINQ to SQL基础的东西就这么多了,这一篇用一些例 子说明一下Null语义和String/DateTime方法。
Null语义
说明:下面 第一个例子说明查询ReportsToEmployee为null的雇员。第二个例子使用 Nullable<T>.HasValue查询雇员,其结果与第一个例子相同。在第三个例 子中,使用Nullable<T>.Value来返回ReportsToEmployee不为null的雇员 的ReportsTo的值。
1.Null
查找不隶属于另一个雇员的所有雇员:
var q =
from e in db.Employees
where e.ReportsToEmployee == null
select e;
2.Nullable<T>.HasValue
查找不隶属于另一个雇员 的所有雇员:
var q =
from e in db.Employees
where !e.ReportsTo.HasValue
select e;
3.Nullable<T>.Value
返回前者的EmployeeID 编号 。请注意.Value 为可选:
var q =
from e in db.Employees
where e.ReportsTo.HasValue
select new
{
e.FirstName,
e.LastName,
ReportsTo = e.ReportsTo.Value
};