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