实体框架:检查是否有要从特定实体保存的更改

发布于 2024-11-07 17:14:46 字数 545 浏览 0 评论 0原文

我想在保存之前检测是否对一组特定实体进行了更改。

我当前正在使用此方法,但如果上下文中修改了任何实体,它会返回 true。

const EntityState ModifiedID = EntityState.Modified
                             | EntityState.Added
                             | EntityState.Deleted;

var objectStateEntries = Database.LabelTAB
                          .Context.ObjectStateManager
                          .GetObjectStateEntries(ModifiedID);

return objectStateEntries.Any();

有什么方法可以检测仅在LabelTAB实体中而不是在整个Context中是否存在一些未保存的条目?

谢谢。

I want to detect if changes where made to a specific set of entity before saving.

I am currently using this method but it returns true if there are any Entity modified in the context.

const EntityState ModifiedID = EntityState.Modified
                             | EntityState.Added
                             | EntityState.Deleted;

var objectStateEntries = Database.LabelTAB
                          .Context.ObjectStateManager
                          .GetObjectStateEntries(ModifiedID);

return objectStateEntries.Any();

Is there any way to detect if there are some unsaved entries in the LabelTAB entity only, and not in the entire Context?

Thank you.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

女皇必胜 2024-11-14 17:14:46

试试这个:

var objectStateEntries = Database.LabelTAB
                                 .Context
                                 .ObjectStateManager
                                 .GetObjectStateEntries(ModifiedID)
                                 .Where(e => e.Entity is LabelTAB);

return objectStateEntries.Any();

Try this:

var objectStateEntries = Database.LabelTAB
                                 .Context
                                 .ObjectStateManager
                                 .GetObjectStateEntries(ModifiedID)
                                 .Where(e => e.Entity is LabelTAB);

return objectStateEntries.Any();
忘你却要生生世世 2024-11-14 17:14:46

使用:

var states  = new List<EntityState>() {  EntityState.Modified,
                                         EntityState.Added,
                                         EntityState.Deleted};

var query = from t in Database.LabelTAB
            where states.Contains(t.EntityState);

每个实体都有一个 EntityState< /a> 属性。您可以只使用实体上的属性,而不是查询 ObjectContext。

Use:

var states  = new List<EntityState>() {  EntityState.Modified,
                                         EntityState.Added,
                                         EntityState.Deleted};

var query = from t in Database.LabelTAB
            where states.Contains(t.EntityState);

Each entity has an EntityState property. Instead of querying the ObjectContext you can just use the property on the entity.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文