不能在fluentnhibernate中使用Guid Identity

时间:2009-12-04 14:33:36

标签: nhibernate fluent-nhibernate nhibernate-mapping

我有以下映射:

public class MyClassMap : ClassMap<MyClass>
{
    public MyClasseMap()
    {
        Table("TABLE_NAME");
        Id(x => x.Id).Column("TR_ID");
    }
}

当我尝试使用条件对象检索所有实体时,我得到以下内容:

System.FormatException : Guid should contain 32 digits with 4 dashes (xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx).

at NHibernate.Loader.Loader.DoList(ISessionImplementor session,QueryParameters queryParameters)  在NHibernate.Loader.Loader.List(ISessionImplementor session,QueryParameters queryParameters,ISet`1 querySpaces,IType [] resultTypes)  在NHibernate.Impl.SessionImpl.List(CriteriaImpl标准,IList结果)  在NHibernate.Impl.CriteriaImpl.List(IList结果)  在NHibernate.Impl.CriteriaImpl.ListT

尝试了所有类型的映射变体。还是行不通。还使用流畅的nhibernate的最新二进制文件(#596)。我如何让它工作?

1 个答案:

答案 0 :(得分:0)

实体看起来像这样:

 public class Entity
 {
   public Guid Id {get;set}
 }

该属性不是虚拟的,因为我已禁用延迟加载。

数据库是sqlserver2008(企业版64位),列的数据类型是“uniqueidentifier”。我使用的操作系统是Windows 7。

我还有其他实体,其中Id和Pk是int,它们运作良好。