a1ding2 2014-02-24 04:32
浏览 916

NHibernate缓存的问题

问题是这样的,关于一个新增model的方法,代码如下:
ISession session = null;
try
{
session = NHibernateHelper.GetCurrentSession();
session.Evict(model);
session.Save(model);
}
catch (Exception ex)
{
throw ex;
}
finally
{
if (session != null)
session.Flush();
}
我新增一个model,由于我的id不是自动增长的,因此我新增model的时候需要手动设置一个id。因此当我新增一个model,model的id跟数据库中的某个id重复的时候,他就会报错,说id重复。但是当我更改了一下id再次新增model(此时id跟数据库中不重复)的时候,他还是报id重复的错误。查看log中的sql语句发现sql语句跟之前的sql语句一样id并没有更改。而如果第一次新增model的时候,如果这个id跟数据库中的id不重复,则不会报该错误。并且以后新增model 的时候那个log中的sql语句也没有跟上次的id重复。
我当时第一个想法是缓存,于是我通过 session.Evict(model);清除这个model 的缓存,但是没有效果。于是我换了session.Clear();这次是正确了,但是这样就清除了所有的缓存。请问有没有什么好的办法解决这个问题呢?

  • 写回答

0条回答

    报告相同问题?

    悬赏问题

    • ¥30 这是哪个作者做的宝宝起名网站
    • ¥60 版本过低apk如何修改可以兼容新的安卓系统
    • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
    • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
    • ¥50 有数据,怎么用matlab求全要素生产率
    • ¥15 TI的insta-spin例程
    • ¥15 完成下列问题完成下列问题
    • ¥15 C#算法问题, 不知道怎么处理这个数据的转换
    • ¥15 YoloV5 第三方库的版本对照问题
    • ¥15 请完成下列相关问题!