WEB开发网
开发学院数据库MSSQL Server LINQ to SQL公共基类 阅读

LINQ to SQL公共基类

 2008-09-04 10:02:00 来源:WEB开发网   
核心提示: 当然,对于抽象一个基类而言,LINQ to SQL公共基类(2),查询并没有问题,因为我们在调用这些方法时,但我们也可以将一个DataContext中的实体关联到另外一个DataContext中,在修改或删除操作中,是不需要实体属性的,也不必关心Lambda表达式的组成

当然,对于抽象一个基类而言,查询并没有问题,因为我们在调用这些方法时,是不需要实体属性的,也不必关心Lambda表达式的组成。

关键的问题是如何更新或删除数据表记录。在更新或删除它之前,我们必须获得要操作的实体。而查询的关键字通常是记录的ID。此外,在Data Context中的Object Identity和Change Tracking也需要对象的ID来跟踪它的变化。ID通常是自增长字段或者Guid字段,并作为表的主键。这样我们就可以根据它获得实体:

  public void Update(Employee employee)
  {
  LinqSampleDataContext context = new LinqSampleDataContext();
  Employee emp = this.Where(e => e.EmployeeID == employee. EmployeeID);
  emp.FirstName = "First Name";
  emp.LastName = "Last Name";
  context.SubmitChanges();      
  }

显然,如果使用泛型例如TEntity,我们并不知道实体的属性。没有关键字,我们又该如何关联已经存在的记录的变化呢?LINQ引入了Attach方法,通过它可以将修改的对象附加到Data Context中。Attach方法具有三个重载版本,如下所示:

Attach(Object entity): 以未修改状态将实体附加到DataContext中;

Attach(Object entity, bool asModified): 以修改或未修改状态将集合中的所有实体附加到DataContext中;

Attach(Object entity, Object orginal): 通过指定实体及其原始状态,以修改或未修改状态将实体附加到 DataContext。.

Attach方法通常用来将反序列化的实体与DataContext的一个新实体关联。但我们也可以将一个DataContext中的实体关联到另外一个DataContext中。在修改或删除操作中,这一方法是非常有用的。

上一页  1 2 3 4 5 6 7  下一页

Tags:LINQ to SQL

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接