0

次のように、標準の双方向レプリケーションを実行しようとしています。ただし、NullReferenceExceptionが発生します。これは別の複製プロジェクトです。このレプリケーションプロジェクトでは、元のプロジェクトに関連するクラス(Item、Categoryなど)をインポートしました。私は何が間違っているのですか?(VSを使用してデバッグすると、changedObjectsにすべての変更されたオブジェクトがあることがわかります。Replicate関数内に問題があるようです)

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。

4

1 に答える 1

0

UUID とバージョン番号を使用してデータベースを設定するのを忘れているようです。公式ドキュメントから:

public static IConfiguration ConfigureReplication()
{
    IConfiguration db4oConfig = Db4oFactory.NewConfiguration();
    db4oConfig.GenerateUUIDs(ConfigScope.Globally);
    db4oConfig.GenerateVersionNumbers(ConfigScope.Globally);
    return db4oConfig;
}
于 2010-03-27T18:01:40.400 に答える