1 生成DataContext文件
使用SqlMetal 工具。
sqlmetal /code:"c:\linqtest6\northwind.cs" /language:csharp "C:\linqtest6\northwnd.mdf" /pluralize
注意:pluralize表示使用英语规则自动将类别和成员名称复数化或单数化。
2 建立项目
建立控制台LinqDataManipulationApp
3 添加DLL和Namespace
添加System.Data.Linq.dll
using System.Data.Linq;
using System.Data.Linq.Mapping;
4 将northwind代码文件添加到项目
northwind.cs添加到LinqDataManipulationApp
5 添加新实体
添加一个Customer
// 创建一个新的Customer实例 Customer newCust = new Customer(); newCust.CompanyName = "AdventureWorks Cafe"; newCust.CustomerID = "ADVCA"; // 添加到customers表中 db.Customers.InsertOnSubmit(newCust); // 提交到数据库 db.SubmitChanges(); Console.WriteLine("\nCustomers matching CA before insert"); foreach (var c in db.Customers.Where(cust => cust.CustomerID.Contains("CA"))) { Console.WriteLine("{0}, {1}, {2}", c.CustomerID, c.CompanyName, c.Orders.Count); }
6 修改实体
修改Customer
// 从数据库中取一条数据 var existingCust = (from c in db.Customers where c.CustomerID == "ALFKI" select c) .First(); // 修改ContactName字段的值 existingCust.ContactName = "New Contact"; // 提交到数据库 db.SubmitChanges(); Console.WriteLine("update ok");
7 删除实体
删除订单明细
// 订单头 Order ord0 = existingCust.Orders[0]; // 订单明细 OrderDetail detail0 = ord0.OrderDetails[0]; // 显示要删除的数据 Console.WriteLine ("The Order Detail to be deleted is: OrderID = {0}, ProductID = {1}", detail0.OrderID, detail0.ProductID); // 数据行标记为删除 db.OrderDetails.DeleteOnSubmit(detail0); // 提交到数据库 db.SubmitChanges();
注意:调用SubmitChanges后才写到数据库。