存储库模式,显式或隐式保存?

Jes*_*uez 6 repository-pattern

我知道这是一个奇怪的问题:)

我真的很想以正确的方式做事,我有一个疑问.

我知道使用DI制作界面...

我的问题是:

最好有一个像"SaveChanges"这样的方法,你必须在每次添加/删除/任何对象时手动调用它?

_repo.Add(blah);
_repo.SaveChanges();
Run Code Online (Sandbox Code Playgroud)

或者最好在每个修改数据的方法中保存更改?

另一方面,我应该始终打开连接还是要关闭它?

我正在学习DB4O并且我有一个Close方法,当我必须在另一个地方使用repo时我会调用它(就像在另一个窗口中,我在打开窗口之前关闭).

谢谢.

Jer*_*ing 2

我个人喜欢将 SaveChanges 方法分开。我认为它可以为消费应用程序提供更大的灵活性。这意味着它可以有更多的重用。

例如,将其分开允许采用“事务”方法,其中可以不断修改存储库,然后如果一切都可以接受,则调用 save 方法。

另一方面,如果您想立即保存而不需要单独调用,则可以创建另一个版本的存储库,该版本在 CRUD 操作期间调用 save 方法。