J'ai trouvé la réponse plus rapidement que je ne le pensais, dans le wiki documentation.
C'est la façon temporaire de le faire:
TypeAlias alias = new TypeAlias("OldNameSpace.OldTypeName, OldAssembly", "NewNameSpace.NewTypeName, NewAssembly");
Db4oFactory.Configure().AddAlias(alias);
IObjectContainer db = Db4oFactory.OpenFile(dbfilename);
La façon plus permanente (c'est un code compliqué, mais il est pour une solution temporaire):
using (IObjectContainer db = Db4oFactory.OpenFile(dbfilename))
{
var n = db.Ext().StoredClasses();
foreach (var x in n)
{
System.Diagnostics.Debug.WriteLine(x.GetName());
}
var c1 = db.Ext().StoredClass("OldNameSpace.OldType, OldAssembly");//
if (c1 != null)
c1.Rename("NewNameSpace.OldType, NewAssembly");
var c2 = db.Ext().StoredClass("System.Collections.Generic.List`1[[OldNameSpace.OldType, OldAssembly]], mscorlib");
if (c2 != null)
c2.Rename("System.Collections.Generic.List`1[[NewNameSpace.OldType, NewAssembly]], mscorlib");
}
Comme vous pouvez le voir « ILists » besoin de mise à jour. Assurez-vous que lorsque vous enregistrez, vous le faites dans un nouveau fichier, sinon vous obtiendrez les deux types dans le fichier de sortie.
Merci pour vos questions et réponses. Je ne ferai rien de tout cela: c'est juste agréable de savoir que je ne deviens pas fou et qu'il y a vraiment un produit de base de données où les résultats de la requête dépendent des noms de variables utilisés. –