NHibernate Insert 正在提交,但对象未保存在表中

Posted

技术标签:

【中文标题】NHibernate Insert 正在提交,但对象未保存在表中【英文标题】:NHibernate Insert is Committing but object is not persisted in table 【发布时间】:2009-01-19 03:41:35 【问题描述】:

调试时一切看起来都很好。插入提交并且没有回滚,没有异常。我当然希望有人能对此有所帮助。

这是我的电话:

using (ITransaction transaction = _session.BeginTransaction())
       

           _session.Save(calc);
           transaction.Commit();
       

真正的简单映射:

<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2"
               assembly="SigCalculator"
               namespace="SigCalculator.Domain">

<id name="ID">
  <generator class="guid" />
</id>
<property name="Time" />
<property name="Equation" />

这是对象:

public class Calculation

    public virtual Guid ID  get; set; 
    public virtual DateTime Time  get; set; 
    public virtual string Equation  get; set; 


【问题讨论】:

【参考方案1】:

我是个笨蛋!确保将 PK 设置为... PK..

嘘..我需要休息一下:)

【讨论】:

呵呵,这样的错误我们都会遇到。【参考方案2】:

如果你打电话会发生什么:

session.Flush();

在事务提交之前?您的应用程序的 FlushMode 设置为什么?

【讨论】:

【参考方案3】:

我尝试了以下..没有任何改变。

public void AddCalc(计算计算) 使用 (ITransaction 事务 = _session.BeginTransaction())

           _session.Save(calc);
           _session.Flush();
           transaction.Commit();
       



   

【讨论】:

以上是关于NHibernate Insert 正在提交,但对象未保存在表中的主要内容,如果未能解决你的问题,请参考以下文章

NHibernate 为新实体生成 INSERT 和 UPDATE

在我的 NHibernate / SQLite 项目中提交非常慢

事务如何在 nhibernate 中工作?

NHibernate Oracle - 事务提交问题

NHibernate:错误脱水属性 - 这到底是什么?

NHibernate 数字格式问题 - 我在哪里设置文化?