我有以下方法。其中返回「無法執行更新查詢」。如果我查詢另一個實體屬性,即「Order.Campaign.Id」,我是否需要包含連接?這將如何工作。 ?如何使用nhibernate刪除使用哪裏與連接
public void RemoveOrderItems(int companyId, int campaignId, int productId, int orderStatus)
{
using (ITransaction transaction = _session.BeginTransaction())
{
_session.CreateQuery("delete from OrderItem where Product.Id = '" + productId + "' and Order.Company.Id = '" + companyId + "' and Order.Campaign.Id = '" + campaignId + "' and Order.OrderStatus = '" + orderStatus + "'").ExecuteUpdate();
transaction.Commit();
}
}
**編輯**
這裏是SQL語句。
DELETE oi
FROM OrderItems oi inner JOIN Orders o On oi.OrderId = o.Id
Where oi.ProductId = '13077' and o.CompanyId = '32' and o.CampaignId = '2' and o.OrderStatus = 3
看看我的樣品,應該很容易。用參數(:myparam和SetParameter)替換'13077','32','2' –