我知道这是一个奇怪的问题:)
我真的很想以正确的方式做事,我有一个疑问。
我知道使用DI ...制作界面
我的问题是:
最好有一个类似“SaveChanges”的方法,你必须在每次添加/删除/无论对象时手动调用它?:
_repo.Add(blah);
_repo.SaveChanges();
或者最好在每个修改数据的方法中保存更改?
另一方面,我是否应该始终打开连接或让我关闭它?
我正在学习DB4O并且我有一个Close方法,当我必须在另一个地方使用repo时我会调用它(就像在另一个窗口中,我在打开窗口之前关闭)。
谢谢。
答案 0 :(得分:2)
我个人喜欢将SaveChanges方法分开。我认为它可以在消费应用程序中提供更大的灵活性。这意味着它可以有更多的重用。
例如,将其分开允许“事务”方法,其中可以不断修改存储库,然后如果一切都可以接受,则调用save方法。
另一方面,如果您想立即保存而无需单独调用,则可以创建另一个版本的存储库,在CRUD操作期间调用save方法。
答案 1 :(得分:0)
我认为在.Net DataSet中,他们还使用AcceptChanges()函数来“提交”最新的数据修改。同样在Oracle数据库中,有一个用于类似任务的COMMIT命令。