【发布时间】:2011-10-30 12:04:45
【问题描述】:
手头的一些细节:
NHibernate : 2.1.2.4000
Oracle Instant client : x64 11.2.0.2.0
Mono : Mono JIT compiler version 2.10.2
我目前在使用 Oracle 和 blob 时遇到了一些困难,因此只有 10K 的 blob 被插入到数据库中。虽然这在 Windows 上确实有效,但在 Linux 上似乎有些不同。查看sql,一切似乎都很好。这是截断的 sql 语句。
INSERT INTO Voters (Photo) VALUES (:p1);:p1 = 0x424DF627090000000000360000002800000090....
hibernate 映射如下所示
类如下
public partial class Voter : BusinessBase<long>
{
#region Declarations
private byte[] _photo = null;
#endregion
public virtual byte[] Photo
{
get { return _photo; }
set { _photo = value; }
}
}
保存选民对象的代码如下所示
Voter entityVoter = Voter.copyFrom(record.TRANSACTION);
IVoterManager managerVoter = ManagerFactory.Instace.GetVoterManager(managerBulkImport.Session);
managerVoter.SaveOrUpdate(entityVoter);
File.WriteAllBytes("/home/user/voter" + entityVoter.Id + ".bmp", entityVoter.Photo);
保存对象后写入磁盘的图像也是正确的,这让我认为问题可能出在 oracle 客户端上?正如我所说,这段代码可以在 Windows 上运行,当然路径除外。
任何帮助将不胜感激!
【问题讨论】:
标签: c# oracle nhibernate mono blob