にはどうすればIDリストでエンティティのセットを削除するには?
Session
.CreateQuery("delete from People where People.Id in (:idList)")
.SetParameter("idList", idList)
.ExecuteUpdate()
が、HQLせずにこのような何かを行うことができますか?
にはどうすればIDリストでエンティティのセットを削除するには?
Session
.CreateQuery("delete from People where People.Id in (:idList)")
.SetParameter("idList", idList)
.ExecuteUpdate()
が、HQLせずにこのような何かを行うことができますか?
私が知る限り、エンティティを削除するためのFluent Nhibernate構文はありません。私は削除したいときにHQL(またはSQL)を使用しました。
hereがあり、必要な場合があります。
foreach(var item in idList)
{
Session.Delete(Session.Load<People>(item));
}
と構成で、このような20には、このセットのバッチサイズのパフォーマンスを向上させるために:
<property name="adonet.batch_size">20</property>
このそれはあなたがこれを行うことができsession.Delete
のオーバーロードの一つでありますNhibernateでデフォルトで存在する動作3.2
もし私が間違っていないのであれば、この方法はすべての項目に対して単一バッチでクエリを生成しますか?しかし、どのように単一のクエリでこれを行うには? – k0lpak
そしてSession.Getの代わりにSession.Loadを使うべきです。それでは、各項目を削除する前に多くの選択肢がありません – Sly
@ k0lpak:私はあなたが単一の質問に進むことはできないと思います。 –