отображение один в один в NHibernate 3.2, отображение по коду - PullRequest
3 голосов
/ 05 марта 2012

Я пытаюсь выучить NHibernate 3.2 built-in mapping by code api ( НЕ БЕСПЛАТНО NHibernate ). Можете ли вы помочь мне отобразить отношения один-к-одному (или ноль) между этими объектами, пожалуйста?

ПРИМЕЧАНИЕ: Я погуглил вопрос, также я ищу SOF, все примеры используют Fluent API или xml; Я пытаюсь использовать встроенный API-интерфейс сопоставления в NHibernate 3.2

public class Person { 
    public virtual int Id { get; set; }  
    public virtual string FirstName { get; set; } 
    public virtual string LastName { get; set; } 

    // can be null 
    public virtual Address Address { get; set; }
} 

public class Address { 
    public virtual int Id { get; set; } 
    public virtual string Line1 { get; set; } 
    public virtual string Line2 { get; set; } 
    public virtual string City { get; set; }

    // can not be null
    public virtual Person Person { get; set; } 
}

Спасибо заранее.

UPDATE:

Стратегия первичного ключа здесь:

Id( 
    t => t.Id, 
    t => { 
        t.Generator(Generators.HighLow, g => g.Params(new { max_low = 100 })); 
        t.Column(typeof(TEntity).Name + "Id"); 
    });

1 Ответ

5 голосов
/ 05 марта 2012

В зависимости от того, что вы на самом деле хотите - карта «один к одному» или карта «многие к одному» могут ответить на ваш вопрос.Пожалуйста, смотрите эту ссылку один на один, если вам нужно действительно уникальное двунаправленное ограничение: http://notherdev.blogspot.com/2012/01/mapping-by-code-onetoone.html

Один к одному, как правило, плохая стратегия, потому что имеет смысл просто поставить все столбцыв одной таблице почти во всех случаях и разделяйте их с помощью сопоставления компонентов, если они нужны в качестве отдельных объектов в вашем домене.Типичный способ разделения их в домене и моделях данных - это использование множества к одному с уникальным ограничением, связывающим обратно с родителем, и это общий шаблон.

Для советов и подсказок пообщие 3.2 сопоставления, этот ресурс мне очень помог: http://notherdev.blogspot.com/2012/02/nhibernates-mapping-by-code-summary.html

...