LINQ to SQL 的EntitySet)>)

EntitySet<(Of <(TEntity>)>) 成员

为 LINQ to SQL 应用程序中的一对多关系和一对一关系的集合方提供延迟加载和关系维护。 

 

 LINQ to SQL 会自动跟踪EntitySet<(Of <(TEntity>)>) 的状态

 

Untracked

LINQ to SQL 未跟踪的对象。示例包括:

  • 未通过当前 DataContext 查询的对象(例如新创建的对象)。

  • 通过反序列化创建的对象

  • 通过其他 DataContext 查询的对象。

Unchanged

通过使用当前 DataContext 检索到的对象,并且尚未获知此对象自创建以来已被修改。

PossiblyModified

附加到 DataContext 的对象。有关更多信息,请参见 N 层应用程序中的数据检索和 CUD 操作 (LINQ to SQL)

ToBeInserted

使用当前 DataContext 未检索到的对象。这会导致在 SubmitChanges 期间执行数据库 INSERT 操作。

ToBeUpdated

符合如下条件的对象:已获知自检索到该对象以来它已被修改。这会导致在 SubmitChanges 期间执行数据库 UPDATE 操作。

ToBeDeleted

标记为删除,从而导致在 SubmitChanges 期间执行数据库 DELETE 操作的对象。

Deleted

已从数据库中删除的对象。此状态为最终状态,不允许再进行其他转换。

比如说:

当某对象的已跟踪EntitySet 在Add之后,该对象SubmitChanges 时会自然把Add 的数据也提交到

这的确体现了LINQ的强大之处,但是同时有利有弊.

这样做的好处是,LINQ TO SQL会生成一个可回滚的SQL操作,以保证数据的完整性

坏处是:当Add的EntitySet 是还需要逻辑处理才能添加进数据库的话,它并没有提供一个灵活的选择让我只传递EntitySet 而不添加进数据库.

更详细的信息见:

对象状态与更改跟踪 (LINQ to SQL)

EntitySet<(Of <(TEntity>)>) 成员

 

你可能感兴趣的:(linq)