我想使用NHibernate将商店列表保存到数据库中。但是,每个商店都有一个唯一约束,导致存储触发约束时保存停止。
try
{
_storeRepository.Save(stores);
}
catch (Exception e)
{
}
finally
{
session.Commit();
}
根据上面的代码,命中唯一约束之前的所有商店都会保存,但不会保存。如何在不必循环整个列表并检查重复项的情况下解决这个问题?
答案 0 :(得分:1)
规则是:
NH会话缓存不同步,您不能再使用它了。所以“终于承诺”是一件非常糟糕的事情。
您需要确保不违反业务逻辑中的任何数据库约束。
答案 1 :(得分:0)
您可以随时使用SaveOrUpdate
,以便NHibernate更新实体,如果在数据库中找到了具有给定实体的实体。