Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/307.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 为NHibernate中的主键列生成序列Id_C#_Nhibernate_Nhibernate Mapping_Mapping By Code - Fatal编程技术网

C# 为NHibernate中的主键列生成序列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

如何为NHibernate中的主键列生成顺序guid。我知道怎么做自动递增的东西。但我不知道如何为主键创建顺序Guid

在数据库中,Id列的数据类型为
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的信息