【发布时间】:2016-03-08 11:17:57
【问题描述】:
我的模型上有一个字符串字段,我将 Xml 序列化为:
public virtual string XmlData { get; set; }
我的 SQL Server 表中有一个“xml”类型的对应列,我将其映射到我的 hbm.xml 文件中,如下所示:
<property name="XmlData" type="StringClob">
<column name="XmlData" sql-type="xml" />
</property>
当我尝试保存我的模型时,我得到一个 NHibernate.TransactionException:
{"Transaction not connected, or was disconnected"}
我用来保存的代码:
public void Save(T entity)
{
WithinTransaction(s => s.SaveOrUpdate(entity));
}
protected void WithinTransaction(Action<ISession> action)
{
var transaction = Session.BeginTransaction();
try
{
action(Session);
transaction.Commit();
}
catch (Exception)
{
transaction.Rollback();
throw;
}
finally
{
transaction.Dispose();
}
}
我假设另一个错误/异常有问题,但“事务未连接”异常隐藏了详细信息。没有 InnerException。
如果我将数据库中的字段类型和映射中的 sql 类型从“xml”更改为“文本”,那么整个事情就完美了。但是我需要该字段的类型为“xml”。
【问题讨论】:
标签: c# sql-server xml nhibernate