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条回答

    报告相同问题?

    悬赏问题

    • ¥15 解决一个加好友限制问题 或者有好的方案
    • ¥15 关于#java#的问题,请各位专家解答!
    • ¥15 急matlab编程仿真二阶震荡系统
    • ¥20 TEC-9的数据通路实验
    • ¥15 ue5 .3之前好好的现在只要是激活关卡就会崩溃
    • ¥50 MATLAB实现圆柱体容器内球形颗粒堆积
    • ¥15 python如何将动态的多个子列表,拼接后进行集合的交集
    • ¥20 vitis-ai量化基于pytorch框架下的yolov5模型
    • ¥15 如何实现H5在QQ平台上的二次分享卡片效果?
    • ¥30 求解达问题(有红包)