C# DB4O持久性和非关闭提交

C# DB4O持久性和非关闭提交,c#,db4o,C#,Db4o,我使用带有透明持久性/激活功能的DB4O,并使用msbuild增强功能作为ASP.NET MVC Intranet协作编辑应用程序的首选数据库。我有几个简单的问题: 如果我在每次更改后调用commit(),而不关闭客户端或服务器中的IObjectContainer。当我的WebApp崩溃或不正常关机时,我的数据是否仍会保存完好 由于没有ActivatableHashSet或ActivatableSortedSet,如果我使用.Net的HashSet或SortedSet或其他非TA/TP集合类型,

我使用带有透明持久性/激活功能的DB4O,并使用msbuild增强功能作为ASP.NET MVC Intranet协作编辑应用程序的首选数据库。我有几个简单的问题:

如果我在每次更改后调用commit(),而不关闭客户端或服务器中的IObjectContainer。当我的WebApp崩溃或不正常关机时,我的数据是否仍会保存完好

由于没有ActivatableHashSet或ActivatableSortedSet,如果我使用.Net的HashSet或SortedSet或其他非TA/TP集合类型,当这些集合发生更改时,如何正确处理持久性?(例如,当这些集合是TA类的成员时),例如

[持久化]
A类,其中T:new()
{
HashSet stuff=new。。。
void AddMore(){stuff.Add(new T())}
}
如果我在每次更改后调用commit(),而不关闭客户端或服务器中的IObjectContainer。当我的WebApp崩溃或不正常关机时,我的数据是否仍会保存完好

是,有关db4o中事务的更多信息,请参阅

但请注意:经常调用commit会破坏性能。你需要配置你的应用程序才能找到平衡点

由于没有ActivatableHashSet或ActivatableSortedSet,如果我使用.Net的HashSet或SortedSet或其他非TA/TP集合类型,当这些集合发生更改时,如何正确处理持久性?(例如,当这些集合是TA类的成员时),例如

我强烈建议您下载并查看

[Persisted]
class A<T> where T : new()
{
  HashSet<T> stuff = new ...
  void AddMore() { stuff.Add(new T()) }
}