我們的模式包含一個包含複合主鍵的表。該實體沒有任何版本/時間戳列。映射是:無法確定實體是否爲瞬態或在刪除時分離
mapping.CompositeId().KeyReference(e => e.ParentEntity).KeyProperty(e => e.DTFR);
當用戶點擊刪除按鈕,HTTP請求被髮送到服務器,服務器創建新的NHibernate會話,並調用session.Delete()
:
using (var session = SessionFactory.OpenSession())
using (var trans = session.BeginTransaction())
{
foreach (var entity in entities)
session.Delete(entity);
return trans.TryCommit();
}
但NHibernate的給出了一個警告:
無法確定是否{實體}與分配的標識符{實體}是 瞬態或分離;查詢數據庫。在會話中使用顯式的Save()或 Update()來防止這種情況發生。
並裝載從數據庫中刪除它之前的實體。
我們不能從警告遵循建議,並使用Save()
或Update()
刪除實體。
我們應該如何改寫我們的代碼以避免刪除數據庫的查詢過大?
如何填充了'entities'收藏? –
'entities'加載HQL(在其他NHibernate會話中),然後序列化爲JSON,然後傳遞給客戶端,反序列化,最後返回到服務器。 – user2291296