1
のパラメータとして長い文字列を設定:DB-プロファイラで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>();
}
を私はParam
の種類が十分でないことnvarchar(4000)
であることがわかります。長い文字列を使うつもりであることをNHibernateに伝える方法はありますか?
P. DBはMSSQL 2005です。
ありがとうございます!
今私はNHibernateUtil.StringClobを使用しています。 – StuffHappens
NHibernateのものStringClob ==データ型としてのSQL Serverの 'text'。ほとんどの場合、それはうまくいくはずです。明らかに、カラムのデータ型が実際に 'text'であれば、それは完璧です。ただし、nvarchar(max)またはvarchar(max)を使用している場合は、「StringClob」を削除し、前述のようにマッピングの長さを設定することを検討する必要があります。そうすれば、すべてが正確にマップされていることが分かり、Schema Exporterを使用することもできます(それについても気にしていると仮定します)。 – HackedByChinese