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; 
}