问题是这样的,关于一个新增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();这次是正确了,但是这样就清除了所有的缓存。请问有没有什么好的办法解决这个问题呢?
NHibernate缓存的问题
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
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 求解达问题(有红包)