Visual Studio 2008 (代號 Orcas) Beta 版已釋出,下載連結:Microsoft Download Center。同步地,DLINQ 正式更名為 LINQ to SQL,本系列後續文章將統一使用新名稱。
var q = from c in db.Customers
select c.ContactName;
var q = from c in db.Customers
select new { c.ContactName, c.Phone };
var q = from e in db.Employees
select new { Name = e.FirstName + " " + e.LastName, Phone = e.HomePhone };
var q = from p in db.Products
select new {
p.ProductName,
Availability = p.UnitsInStock - p.UnitsOnOrder < 0 ? "Out Of Stock" : "In Stock"
};
這會被轉譯為 SQL 的 CASE WHEN ... THEN ... ELSE ... END。
var q = from e in db.Employees
select new Name { FirstName = e.FirstName, LastName = e.LastName };
此處 Name 為預先定義的類別,適合需要強型別回傳的情境。
建立巢狀匿名類型,對應複雜的 DTO 結構:
var q = from c in db.Customers
select new {
c.CustomerID,
CompanyInfo = new { c.CompanyName, c.City, c.Country },
ContactInfo = new { c.ContactName, c.ContactTitle }
};
這對應到前端需要的巢狀 JSON 結構,極大簡化資料傳輸物件(DTO)的手工映射工作。