Мы используем FluentNHibernate, и мы столкнулись с проблемой, когда нашей объектной модели требуются данные из двух таблиц, например:
public class MyModel
{
public virtual int Id { get; set; }
public virtual string Name { get; set; }
public virtual int FooId { get; set; }
public virtual string FooName { get; set; }
}
Там, где есть таблица MyModel с Id, Name и FooId в качестве внешнего ключа в таблице Foo. Таблицы Foo содержат Id и FooName.
Эта проблема очень похожа на другой пост здесь: Nhibernate: объединить таблицы и получить один столбец из другой таблицы , но я пытаюсь выяснить, как это сделать с FluentNHibernate.
Я могу очень легко создать Id, Name и FooId ... но с отображением FooName у меня возникли проблемы. Это моя карта класса:
public class MyModelClassMap : ClassMap<MyModel>
{
public MyModelClassMap()
{
this.Id(a => a.Id).Column("AccountId").GeneratedBy.Identity();
this.Map(a => a.Name);
this.Map(a => a.FooId);
// my attempt to map FooName but it doesn't work
this.Join("Foo", join => join.KeyColumn("FooId").Map(a => a.FooName));
}
}
с этим отображением я получаю эту ошибку:
Элемент 'class' в пространстве имен 'urn: nhibernate-mapping-2.2' имеет недопустимый дочерний элемент 'join' в пространстве имен 'urn: nhibernate-mapping-2.2'. Список возможных ожидаемых элементов: 'join-subclass, загрузчик, sql-insert, sql-update, sql-delete, фильтр, набор результатов, запрос, sql-запрос' в пространстве имен 'urn: nhibernate-mapping-2.2'.
есть идеи?