Правильное отображение гидов. Nhibernate - PullRequest
4 голосов
/ 28 сентября 2011

Я использую абстрактный класс Entity, который содержит Guid:

public abstract class Entity
{
    public /*virtual*/ Guid Id { get; set; }
}

Предположим, у меня также есть такой класс:

public class Post : Entity
{
    public String Title { get; set; }
    public String Content { get; set; }
    public DateTime Timestamp { get; set; }
}

Как правильно сопоставить Post класс с использованием xml-mapping? Я спрашиваю про Id.

Ответы [ 2 ]

12 голосов
/ 28 сентября 2011
<id name="Id">
    <generator class="guid"/>
</id>

Это создаст Guids на клиенте, используя метод Guid.NewGuid().

Альтернативные генераторы:

  • guid.native - генерирует Guids на стороне сервера.Например, использование NEWID() на сервере SQL
  • guid.comb - генерирует «последовательные» Guids, что уменьшает фрагментацию индекса.

Я бы порекомендовал guid.comb для большинства приложений, которые используютИдентификаторы Guid.

0 голосов
/ 28 сентября 2011

Пожалуйста, взгляните на пост Айенде о картографировании и наследовании: http://ayende.com/blog/3941/nhibernate-mapping-inheritance

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