我们正在使用Fluent NHibernate 1.2,我们的主键是一个保存在nvarchar(32)列中的guid,与Oracle 11gr2一起使用.
我们怎样才能做到这一点? (进行自动转换……)
谢谢,随机程序员……
更新:
忘了提一下,guid在没有短划线的情况下保存了……
解决方法
更新:
您必须实现自己的IUserType来处理无破坏的Guids.
你可以在这里读到它:
http://dotnet.dzone.com/articles/understanding-nhibernate-type
下面的详细信息现在与问题无关,但我会将其保留在此处供将来参考,供人们查找.
正常使用Guids
在您的实体中,Id应为Guid类型:
public virtual Guid Id { get; private set; }@H_502_35@在你的ClassMap中,你应该像这样映射它:
Id(x => x.Id) .Column("Id") .GeneratedBy.GuidComb();@H_502_35@这将使用推荐的梳状算法生成新的guid.
要么
Id(x => x.Id) .Column("Id") .GeneratedBy.Guid();@H_502_35@使用System.Guid创建新的Guids
要么
Id(x => x.Id) .Column("Id") .GeneratedBy.GuidNative();@H_502_35@