适当的Guid映射.NHibernate的

lex*_*eme 4 c# nhibernate

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

public abstract class Entity
{
    public /*virtual*/ Guid Id { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

假设我也有一个类:

public class Post : Entity
{
    public String Title { get; set; }
    public String Content { get; set; }
    public DateTime Timestamp { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

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

Jon*_*øgh 12

<id name="Id">
    <generator class="guid"/>
</id>
Run Code Online (Sandbox Code Playgroud)

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

替代发电机是:

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

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