У меня есть несколько баз данных в моем проекте SharpArchitecture, и я следовал приведенному здесь руководству:
http://wiki.sharparchitecture.net/FAQ.ashx
Все отлично работает, кроме моих сущностей с назначенными идентификаторами. Я получаю «базу данных уже настроена» при попытке запуска приложения. Через некоторое копание я получаю:
«Идентификационный тип должен быть целым (int, long, uint, ulong)»
public void Apply(FluentNHibernate.Conventions.Instances.IIdentityInstance instance)
{
instance.Column("Id");
instance.UnsavedValue("0");
instance.GeneratedBy.HiLo("1000");
}
Это выбрасывается во время instance.GeneratedBy.HiLo("1000")
; Это странно, так как я сопоставляю присвоенный идентификатор и строку. Кажется, он игнорирует мою назначенную карту идентификаторов:
[SessionFactory(DataGlobals.SecondDbFactoryKey)]
public class SecondDbEntityMap: IAutoMappingOverride<SecondDbEntity>
{
public void Override(AutoMapping<SecondDbEntity> mapping) {
mapping.Id(x => x.AssignedIdProperty).GeneratedBy.Assigned();
}
}
Это отображение должно работать, верно? У меня есть несколько назначенных идентификаторов сущностей в моей первой базе данных, и они отображаются одинаковым образом (атрибут фабрики сессий) и работают нормально. Я не могу понять это.