Свободное отображение NHibernate не на ПК поле - PullRequest
0 голосов
/ 03 февраля 2010

У меня есть следующие таблицы, и я не могу редактировать их структуру ...

Person
------
Id PK
Code
Name

Order
-----
Id PK
Person_Code
OrderDetails

Теперь в моем классе Person я хочу иметь список заказов для этого человека, но я не совсем уверен, как настроить отображение в беглом nhibernate для соответствия столбцу Code, а не ID. Нет ограничений внешнего ключа, и я не могу изменить базу данных для использования ключей. Что-то вроде этого - то, что мне нужно, но я не могу понять, как это выглядит.

public class Person
{
    public virtual int Id { get; set; }
    public virtual string Code { get; set; }
    public virtual IList<Order> Orders { get; private set; }
}

public class Order
{
    public virtual int Id { get; set; }
    public virtual string OrderDetails { get; set; }
    public virtual Person Owner { get; set; }
}

1 Ответ

2 голосов
/ 03 февраля 2010

Вы определяете свой столбец с помощью метода KeyColumn. Он должен работать независимо от наличия ограничения внешнего ключа.

class PersonMap : ClassMap<Person>
{
    public PersonMap()
    {
        HasMany(p => p.Order)
            .KeyColumn("Person_Code")
            .PropertyRef("Code");
    }
}

Метод PropertyRef доступен из rev 614 , поэтому вам может потребоваться обновить свободную версию nhibernate.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...