代码之家  ›  专栏  ›  技术社区  ›  brainimus user417509

NHibernate更新未更改的记录

  •  5
  • brainimus user417509  · 技术社区  · 14 年前

    从数据库检索记录列表:

    using(UnitOfWork.Start())
    {
       queuedJobs = aJobServiceManager.GetAllJobs().Where(aJob => aJob.Status == PricingStatus.QUEUED).ToList();
    }
    
    /* Do some work on the record*/
    using(UnitOfWork.Start())
    {
       //aJob is a record from queuedJobs.
       aJobServiceManager.Save(aJob);
       //When Flush is called I'm expecting only aJob to be updated in the database.
       //aJob is correctly updated BUT
       //All the other records in queuedJobs are also updated (their version field is incremented).
       UnitOfWork.Current.Flush();
    }
    

    为什么nHibernate要在所有记录都没有更改的情况下更新它们?如何停止这种行为?

    1 回复  |  直到 13 年前
        1
  •  9
  •   janv8000    6 年前

    http://nhibernate.info/blog/2008/10/20/how-test-your-mappings-the-ghostbuster.html

    查看作业的映射文件会有所帮助。如果你在做这样的事

    <property name="Status" type="int" /> 
    

    在哪里? Status 实际上是 StatusEnum