日期:2014-05-16  浏览次数:20438 次

LINQ(数据库操作增、删、改及并发管理)

本文将演示如何通过 Entity Framework 数据模型创建、修改、删除数据库记录。

?

插入

?????? 为了在数据库里创建新纪录,需要创建相应实体类的新实例,填充字段,把实体类加入 ObjectContext 派生类维护的 EntityCollection,然后调用 SaveChanges()写入新纪录:

Customer cust = new Customer()
{
    CustomerID = "LAWN",
    CompanyName = "Lawn Wranglers",
    ContactName = "Mr. Abe Henry",
    ContactTitle = "Owner",
    Address = "1017 Maple Leaf Way",
    City = "Ft. Worth",
    Region = "TX",
    PostalCode = "76104",
    Country = "USA",
    Phone = "(800) MOW-LAWN",
    Fax = "(800) MOW-LAWO"
};
?
NorthwindEntities db = new NorthwindEntities();
db.Customers.AddObject(cust);
db.SaveChanges();

?????? 可以多次 AddObject()后调用一次 SaveChanges() 全部写入数据库。

?

1. 创建部分加载的实体类

?????? 在之前的示例里,我们调用了 Customer 实体类的默认构造函数,它创建的实例没有加载任何数据。不过,我们还可以通过在构造函数里指定必须字段的值来减少数据库错误的风险。

?????? 每个实体类都有一个名为 CreateT 的工厂方法,例如,Customer 的实体类的工厂方法是 CreateCustomer 。看下面示例:

Customer cust = Customer.CreateCustomer("LAWN", "Lawn Wranglers");
cust.ContactName = "Mr. Abe Henry";
cust.ContactTitle = "Owner";
cust.Address = "1017 Maple Leaf Way";
cust.City = "Ft. Worth";
cust.Region = "TX";
cust.PostalCode = "76104";
cust.Country = "USA";
cust.Phone = "(800) MOW-LAWN";
cust.Fax = "(800) MOW-LAWO";
?
NorthwindEntities db = new NorthwindEntities();
db.Customers.AddObject(cust);
db.SaveChanges();

?????? 我们倾向于使用默认构造函数,因为可以在一条语句里指定属性的值,但是如果你