在本系列中,主要介紹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
};