2011-02-08 85 views
1


我構建這樣的查詢:NHibernate的 - 設置長字符串作爲參數查詢

private void Test() 
{ 
    ISession session = sessionFactory.OpenSession(); 
    var query = session.GetNamedQuery("testQuery"); 
    string s = BuildVeryLongString(); // length more that 4000 chracters 
    query.SetParameter("Param", s, NHibernateUtil.String); 
    query 
     .SetResultTransformer(new AliasToBeanResultTransformer(type)) 
     .List<Type>(); 
} 

在DB-探查我可以看到的Param類型是nvarchar(4000)這是不夠的。有沒有辦法說NHibernate,我要使用更長的字符串?
P.S. DB是MSSQL 2005.
在此先感謝!

回答

2

假設Param用作映射屬性的約束,查詢將嘗試根據映射的屬性使用正確的數據類型和參數長度。 Param與映射到nvarchar(max)列的屬性相關嗎?如果是這樣,您是否正確設置了數據長度?如果您希望Nhibernate將其識別爲nvarchar(max),您應該將字符串列上的數據長度設置爲超過4000(4001應該有效)。

+0

現在我使用NHibernateUtil.StringClob,它適用於我。 – StuffHappens 2011-02-08 12:22:21

相關問題