2009-12-04 43 views
-1

使用的Guid身份,我有以下映射:不能在fluentnhibernate

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). 

在NHibernate.Loader。在NHibernate.Loader.Loader.List(ISessionImplementor會話,QueryParameters queryParameters,ISet`1查詢空間,IType [] resultTypes)中的Loader.DoList(ISessionImplementor會話,QueryParameters queryParameters) NHibernate.Impl.SessionImp l.List(CriteriaImpl標準,IList的結果) 在NHibernate.Impl.CriteriaImpl.List(IList的結果) 在NHibernate.Impl.CriteriaImpl.ListT

嘗試所有類型的映射變化。還是行不通。還使用最新的二進制文件(#596)流利的nhibernate。我如何得到這個工作?

+0

你能告訴我們你的實體嗎? 「TR_ID」列的數據類型是什麼? – 2009-12-04 16:47:51

+0

嘗試爲您的ID使用.GeneratedBy.XXX()。 – queen3 2009-12-10 21:14:55

回答

0

實體看起來是這樣的:

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

該物業是不是虛擬的,因爲我有殘疾延遲加載。

數據庫爲sqlserver2008(企業版64位),列的數據類型爲「uniqueidentifier」。我使用的操作系統是Windows 7.

我也有其他實體與Id和Pk作爲int的,他們完美的工作。

+0

對於我在Windows7上使用SQLEXPRESS 2008的作品也是如此,但32位 – twk 2009-12-09 00:29:40