Oracle 使用Fluent NHibernate和guid ID

Oracle 使用Fluent NHibernate和guid ID,oracle,nhibernate,fluent-nhibernate,guid,Oracle,Nhibernate,Fluent Nhibernate,Guid,我们使用的是Fluent NHibernate 1.2,我们的主键是保存在nvarchar(32)列中的guid,使用的是Oracle 11gr2 我们怎样才能做到这一点?(进行自动转换…) 谢谢你,随机程序员 更新: 忘记提及,guid保存时没有破折号…更新: 您必须实现自己的IUserType来处理无dashless GUI。 您可以在这里阅读: 下面的细节现在与问题无关,但我会将其保留在这里,供人们将来查找 “正常”使用guid 在实体中,Id应为Guid类型: public virtu

我们使用的是Fluent NHibernate 1.2,我们的主键是保存在nvarchar(32)列中的guid,使用的是Oracle 11gr2

我们怎样才能做到这一点?(进行自动转换…)

谢谢你,随机程序员

更新: 忘记提及,guid保存时没有破折号…

更新: 您必须实现自己的IUserType来处理无dashless GUI。
您可以在这里阅读:

下面的细节现在与问题无关,但我会将其保留在这里,供人们将来查找

“正常”使用guid 在实体中,Id应为Guid类型:

public virtual Guid Id { get; private set; }
在类映射中,您应该这样映射它:

Id(x => x.Id)
  .Column("Id")
  .GeneratedBy.GuidComb();
这将使用推荐的comb算法生成新的guid

使用
System.Guid


如果您想让数据库为您生成Guid。

这是一个非常棘手的问题……您必须实现自己的IUserType。我会更新我的答案。
Id(x => x.Id)
  .Column("Id")
  .GeneratedBy.Guid();
Id(x => x.Id)
  .Column("Id")
  .GeneratedBy.GuidNative();