您的位置:首页 > 数据库

LINQ to SQL 的EntitySet)>)

2008-12-21 22:53 453 查看
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>)>) 成员
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: