适当的Guid映射。 NHibernate的

时间:2011-09-28 18:57:17

标签: c# nhibernate

我使用了一个包含Guid的抽象Entity类:

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; }
}

如何使用xml-mapping正确映射Post类?我问的是Id。

2 个答案:

答案 0 :(得分:12)

<id name="Id">
    <generator class="guid"/>
</id>

这将使用Guid.NewGuid()方法在客户端上生成Guids。

替代发电机是:

  • guid.native - 在服务器端生成Guids,例如在SQL Server上使用NEWID()
  • guid.comb - 生成“顺序”Guids,减少索引碎片。

对于大多数使用Guid标识符的应用程序,我建议使用guid.comb。

答案 1 :(得分:-2)

请查看Ayendes关于地图和继承的帖子:http://ayende.com/blog/3941/nhibernate-mapping-inheritance