Je viens de commencer à utiliser db4o sur C#, et je vais avoir du mal à régler la UniqueConstraint sur la DB ..UniqueConstraint dans EmbeddedConfiguration
est ici la configuration db4o
static IObjectContainer db = Db4oEmbedded.OpenFile(dbase.Configuration(), "data.db4o");
static IEmbeddedConfiguration Configuration()
{
IEmbeddedConfiguration dbConfig = Db4oEmbedded.NewConfiguration();
// Initialize Replication
dbConfig.File.GenerateUUIDs = ConfigScope.Globally;
dbConfig.File.GenerateVersionNumbers = ConfigScope.Globally;
// Initialize Indexes
dbConfig.Common.ObjectClass(typeof(DAObs.Environment)).ObjectField("Key").Indexed(true);
dbConfig.Common.Add(new Db4objects.Db4o.Constraints.UniqueFieldValueConstraint(typeof(DAObs.Environment), "Key"));
return dbConfig;
}
et l'objet à sérialiser:
class Environment
{
public string Key { get; set; }
public string Value { get; set; }
}
chaque fois que j'arrive à valider des valeurs, une «référence d'objet non définie sur une instance d'un objet». Une exception apparaît, avec une trace de pile pointant vers UniqueFieldValueConstraint. En outre, lorsque je commente les deux lignes après le commentaire "Initialize Indexes", tout fonctionne bien (sauf que vous pouvez enregistrer des clés non uniques, ce qui est un problème) ~
Commit code (Au cas où je fais quelque chose mauvais dans cette partie aussi :)
public static void Create(string key, string value)
{
try
{
db.Store(new DAObs.Environment() { Key = key, Value = value });
db.Commit();
}
catch (Db4objects.Db4o.Events.EventException ex)
{
System.Console.WriteLine
(DateTime.Now + " :: Environment.Create\n" + ex.InnerException.Message +"\n" + ex.InnerException.StackTrace);
db.Rollback();
}
}
Aide s'il vous plaît? Merci à l'avance ~
2 Merci J'utilise Java, Java est-il affecté par les champs de support? – Viet
Est-ce que Java a des propriétés, n'est-ce pas Java en utilisant toutes ces méthodes getter et setter, ou suis-je en retard de quelques années? – mnemosyn
Merci pour ce sujet et réponse avec le "tour" – binball