db4o复制系统:NullReferenceException?
问题描述:
我正在尝试如下执行标准双向复制。但是,我得到一个NullReferenceException。这是一个单独的复制项目。我没有在这个复制项目中导入原始项目中涉及的类(例如Item,Category等)。我究竟做错了什么? (如果我调试使用VS,我可以看到,changedObjects确实都发生改变的对象,似乎有复制功能内部的一些问题)db4o复制系统:NullReferenceException?
IObjectContainer local = Db4oFactory.OpenFile(@"G:\Work\School\MIS\VINMIS\Inventory\bin\Debug\vin.db4o");
IObjectContainer far = Db4oFactory.OpenFile(@"\\crs-lap\c$\vinmis\vin.db4o"); ;
IReplicationSession replication = Replication.Begin(local, far);
IObjectSet changedObjects = replication.ProviderA().ObjectsChangedSinceLastReplication();
while(changedObjects.HasNext())
replication.Replicate(changedObjects.Next()); // Exception!!!
replication.Commit();
changedObjects = replication.ProviderB().ObjectsChangedSinceLastReplication();
while (changedObjects.HasNext())
replication.Replicate(changedObjects.Next());
replication.Commit();
问候,
SAURABH。
答
听起来像您忘记了使用UUID和版本号设置您的数据库。来自official documentation:
public static IConfiguration ConfigureReplication()
{
IConfiguration db4oConfig = Db4oFactory.NewConfiguration();
db4oConfig.GenerateUUIDs(ConfigScope.Globally);
db4oConfig.GenerateVersionNumbers(ConfigScope.Globally);
return db4oConfig;
}