C# 为NHibernate中的主键列生成序列Id
如何为NHibernate中的主键列生成顺序guid。我知道怎么做自动递增的东西。但我不知道如何为主键创建顺序Guid 在数据库中,Id列的数据类型为C# 为NHibernate中的主键列生成序列Id,c#,nhibernate,nhibernate-mapping,mapping-by-code,C#,Nhibernate,Nhibernate Mapping,Mapping By Code,如何为NHibernate中的主键列生成顺序guid。我知道怎么做自动递增的东西。但我不知道如何为主键创建顺序Guid 在数据库中,Id列的数据类型为uniqueidentifier。我查看了官方文件和其他一些网络搜索结果。但我找不到任何解决办法。以下是我现在拥有的: public UserMap() { Table("Users"); Id(x => x.Id); Property(x => x.Username, x => x.NotNullable
uniqueidentifier
。我查看了官方文件和其他一些网络搜索结果。但我找不到任何解决办法。以下是我现在拥有的:
public UserMap()
{
Table("Users");
Id(x => x.Id);
Property(x => x.Username, x => x.NotNullable(true));
Property(x => x.Email, x => x.NotNullable(true));
Property(x => x.PasswordHash, x =>
{
x.NotNullable(true);
x.Column("password_hash");
});
}
通过Adam Bar检查文档 让我举个例子: 最常见的主键映射可以通过Id方法获得
Id(x => x.Id, m =>
{
m.Column("id");
m.Generator(Generators.Native, g => g.Params(new
{
// generator-specific options
}));
m.Length(10);
m.Type(new Int32Type());
m.Access(Accessor.Field);
});
缺少几个功能-例如未保存的值(将添加
在NHibernate 3.3)或DDL列选项中
可能最重要的选择是发电机。它指明了道路
NHibernate(或数据库)生成唯一值。有8个
通过静态生成器提供预定义类型的生成器
类别:
因此,基于此,我们可以如下调整映射:
public UserMap()
{
Table("Users");
Id(x => x.Id, m =>
{
m.Generator(Generators.GuidComb);
}
...
通过Adam Bar检查文档 让我举个例子: 最常见的主键映射可以通过Id方法获得
Id(x => x.Id, m =>
{
m.Column("id");
m.Generator(Generators.Native, g => g.Params(new
{
// generator-specific options
}));
m.Length(10);
m.Type(new Int32Type());
m.Access(Accessor.Field);
});
缺少几个功能-例如未保存的值(将添加
在NHibernate 3.3)或DDL列选项中
可能最重要的选择是发电机。它指明了道路
NHibernate(或数据库)生成唯一值。有8个
通过静态生成器提供预定义类型的生成器
类别:
因此,基于此,我们可以如下调整映射:
public UserMap()
{
Table("Users");
Id(x => x.Id, m =>
{
m.Generator(Generators.GuidComb);
}
...
我是这样做的:
在我的业务实体类中
public abstract class EntityBase : IEntity
{
public virtual Guid Id { get; protected set; }
...
}
fluent映射:
Id(x => x.Id).GeneratedBy.GuidComb();
阅读有关Guid.comb的内容我是这样做的:
在我的业务实体类中
public abstract class EntityBase : IEntity
{
public virtual Guid Id { get; protected set; }
...
}
fluent映射:
Id(x => x.Id).GeneratedBy.GuidComb();
阅读有关Guid.comb的信息