尝试在同一次提交中使用实体框架和工作单元进行插入和删除时,常见的做法是什么?
我已经使用我的实体框架存储库实现了工作单元模式。 ** 高尔夫拍手 **
现在我想知道常见的做法是什么,在同一个提交中进行多个插入和/或删除?
例如:假设我希望添加 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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
允许,但不保证顺序。 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.