我们使用Fluent NHibernate 1.2,我们的主键是保存在nvarchar(32)列中的guid,用于Oracle 11gr2。
我们怎样才能做到这一点?(进行自动转换…)
谢谢你,随机程序员。。。
更新:忘了提一下,guid是不带破折号保存的。。。
更新:
您必须实现自己的IUserType来处理无dashless Guid
您可以在此处阅读:
http://dotnet.dzone.com/articles/understanding-nhibernate-type
下面的细节现在与这个问题无关,但我会把它放在这里,供人们将来参考。
使用Guids";通常"
在您的实体中,Id的类型应为Guid:
public virtual Guid Id { get; private set; }
在你的ClassMap中,你应该这样映射:
Id(x => x.Id)
.Column("Id")
.GeneratedBy.GuidComb();
这将使用推荐的comb算法来生成新的guid。
或
Id(x => x.Id)
.Column("Id")
.GeneratedBy.Guid();
使用System.Guid
生成新的Guid
或
Id(x => x.Id)
.Column("Id")
.GeneratedBy.GuidNative();
如果您想让数据库为您生成Guid。