Я только начал использовать db4o на C#, и я с устанавливающее UniqueConstraint на БД проблема ..UniqueConstraint в EmbeddedConfiguration
вот конфигурация 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;
}
и объект сериализации:
class Environment
{
public string Key { get; set; }
public string Value { get; set; }
}
каждый раз, когда я получаю некоторые значения, «Ссылка на объект не установлена в экземпляр объекта». Исключается всплывающее окно с трассировкой стека, указывающей на UniqueFieldValueConstraint. Кроме того, когда я комментирую две строки после комментария «Инициализировать индексы», все работает нормально (кроме сохранения не уникальных ключей, что является проблемой).
Код сделки (в случае, если я что-то делаю неправильно в этой части тоже:
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();
}
}
Помогите пожалуйста? Заранее спасибо ~
+2 Спасибо Я использую Java. Является ли Java затронутым полями поддержки? – Viet
Есть ли у Java свойства вообще? Является ли Java не использующим все эти методы getter и setter, или я отстаю на несколько лет? – mnemosyn
Спасибо за эту тему и ответ с "трюком" – binball