2017-02-24 5 views
1

SQL Server의 이미지 필드에 큰 이미지를 바이트 배열로 삽입하려고 할 때 NHibernate 버전 4.1.0에 문제가 있습니다. 내 매핑은 다음과 같습니다.NHibernate가 이미지 유형으로 인해 트랜잭션을 커밋하지 못했습니다.

<property name="BinaryContent" column="MyContent" not-null="false" /> 

문제는 트랜잭션을 커밋 할 수 없다는 것입니다. 작은 이미지가 잘 작동하는 것처럼 보이기 때문에 잘라내기로 인한 것 같습니다.

나는 매핑을 변경하고 유형을 지정,이 문제에 대한 해결 방법이 있습니다

<property name="BinaryContent" column="MyContent" not-null="false" type="BinaryBlob" /> 

을하지만 문제는 내가 변경해야 할 많은 매핑 파일이 매우 큰 프로젝트이다. 따라서 전 세계적으로 그리고 프로젝트에서이 작업을 자동으로 수행하기를 고대하고 있습니다.

모든 솔루션?

:

답변

1

아니, 내가 두려워 (주 NHibernate에 2.1이 마법처럼 일하고 있었다).
SQL Server의 경우 8000보다 큰 길이가 필요할 때 BinaryBlob 유형을 사용하려면 매핑이 필요하거나 매핑에 maxixum 길이를 명시 적으로 설정해야합니다.
byte[]의 기본값은 Binary이며 매핑 유형을 지정하지 않으면 doc을 참조하십시오. 왜 이것이 NH 2.1에서 작동하는지에 대해서는 모르겠습니다.

NH-2764 문제는이를 확인합니다. ("문제가 아님"으로 마감되었습니다.)

+1

일부 이전 버전의 NHibernate는 경우에 따라 자동으로 잘려서 데이터를 손상시킵니다. –

+0

@OskarBerggren 알아두면 좋음! 감사! – rpfc

+0

@ Frédéric 대단히 감사합니다! 내 매핑을 수정할 시간이야 ... – rpfc