尝试在同一次提交中使用实体框架和工作单元进行插入和删除时,常见的做法是什么?

发布于 2024-10-14 02:29:23 字数 633 浏览 2 评论 0原文

我已经使用我的实体框架存储库实现了工作单元模式。 ** 高尔夫拍手 **

现在我想知道常见的做法是什么,在同一个提交中进行多个插入和/或删除?

例如:假设我希望添加 5 个新对象/实体,由于某种原因,现在删除实体#3。

// Arrange.
var uow = new UnitOfWork() { ... };
var myRepository = new MyRepository(uow);
var entity1 = new Entity(){ ... };
// ... snip snip ..

// Acts.
myRepository.Add(entity1);
myRepository.Add(entity2);
myRepository.Add(entity3);
myRepository.Add(entity4);
myRepository.Add(entity5);

 // do some logic ...

myRepository.Delete(entity3);

uow.Commit();

这会起作用吗..就像..应该添加实体然后从数据库中删除1吗?或者这只发生在 EF 实体列表中?

这是不好的做法吗? IE。永远不要将添加/更新与删除混合在一起?总是在删除之前提交?

I've implimented a Unit of Work pattern with my Entity Framework repository. ** golf clap **

Now i'm wondering what the common practice is, for doing multiple insets and/or deletes all within the same commit?

for example: Imagine I wish add 5 new objects/entities and for some reason, now delete entity #3.

// Arrange.
var uow = new UnitOfWork() { ... };
var myRepository = new MyRepository(uow);
var entity1 = new Entity(){ ... };
// ... snip snip ..

// Acts.
myRepository.Add(entity1);
myRepository.Add(entity2);
myRepository.Add(entity3);
myRepository.Add(entity4);
myRepository.Add(entity5);

 // do some logic ...

myRepository.Delete(entity3);

uow.Commit();

Will this work .. as in .. should the entities be added and THEN 1 removed from the db? Or will this only happen against the EF Entities list?

Is this bad practice? ie. never mix adds/updates with deletes? always commit before a delete?

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

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

发布评论

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

评论(1

離人涙 2024-10-21 02:29:23

允许,但不保证顺序。 EF 将尝试找出最佳顺序,如果不能则抛出。如果这听起来很难全面测试,那么您可能是对的。

It's allowed, but the order isn't guaranteed. EF will try to figure out the best order, and throw if it can't. If this sounds hard to test comprehensively, well, you're probably right.

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