Проблема проста. У меня есть два класса, сопоставленные с беглым nhibernate:
public class A: EntityBase {}
public class B: EntityBase
{
public virtual A A_Something {get;set;}
}
с классом EntityBase, предоставляющим только свойство Key. Теперь я хочу отобразить их и настроить мою базу данных. Итак, вот сопоставления
public class AMap : DomainEntityBase<A>
{
public AMap(){}
}
public class BMap : DomainEntityBase<B>
{
public BMap()
{
References(p=>p.A_Something).Column("A_ID");
}
}
и конфигурация дБ
Fluently.Configure().Database(...).Mappings(m =>
m.FluentMappings.Add<BMap>()).
ExposeConfiguration(BuildSchema).BuildSessionFactory();
Конфигурирование выполняется только с BMap, так как, к сожалению, таблица A уже существует внутри базы данных, и ее данные нельзя изменить (это потому, что это приложение использует части большей базы данных, и эти части не подлежат изменению). Таким образом, эта схема генерирует стандартное исключение
An association from the table [B] refers to an unmapped class: A
Есть ли возможность как-то указать в моей конфигурации, что A уже существует в БД? Если нет, каковы ваши предложения, чтобы решить эту проблему мягким способом? Конечно, я могу подготовить файлы * .sql для создания таблицы B вручную, но это не решение (просто отодвинуть проблему, поскольку она обязательно вернется в ходе дальнейшей разработки). Также может сработать создание отдельной базы данных и импорт данных из первой, но, к сожалению, существует потребность хранить данные в одной (и только одной) базе данных.