1

试图将 C#/.NET 类型的属性存储byte[]SQLite. 这是我的映射:

<class name="MyClass" lazy="false" table="MyTable">
   <property name="MyProperty" type ="BinaryBlob" access="property" />
</class>

即使没有明确的映射,它SQL server也能像魅力一样工作。type="BinaryBlob"SQLite我尝试了 SQLCREATE TABLE语句和NHibernate数据类型之间的各种类型组合,但每次都得到“无法编译映射”的异常(因为类型不兼容)或从获取的数据类型中强制转换的异常映射类型是不可能的。

in insert 语句的值MyProperty如下所示0x7C87541FD3F3EF5016E12D411900C87A6046A8E8

更新:继续调试System.Data.SQLite.SQLiteDataReader- 看起来无论 SQL 类型是什么(尝试过,,,decimalblob-unsigned big int类型关联始终是text.

请问我做错了什么(无论是技术上还是总体上)?欢迎任何建议。

4

2 回答 2

0

您是否看过:如何从 sqlite 存储和检索 blob?ayende.com 上也有一篇文章:Lazy loading BLOBS and like in NHibernate。这些链接可能有助于将您推向正确的方向,以了解正在发生的事情。

于 2010-07-26T20:19:51.603 回答
0

亲和力的原因是数据是从CSV(逗号分隔值)文件text导入到表中的。使用正确的语句切换到SQL文件解决了这个问题。 INSERT

于 2010-07-26T20:35:35.260 回答