簡體   English   中英

流利的NHibernate查詢,無需加載

[英]Fluent-NHibernate Querying without loading

我正在嘗試執行快速更新查詢而不加載更新后的值,我試圖使用此代碼

 public void Save(int PlayerID, string Column, object Value)
        {
            using (ISession session = new SessionManager(_connectionString).Open())
            {
                IQuery query = session.CreateQuery("UPDATE Players SET " + Column + "= :newValue WHERE PlayerID=:PlayerID");
                query.SetParameter("newValue", Column);
                query.SetParameter("PlayerID", PlayerID);
                query.ExecuteUpdate();
            }
        }

但是我收到錯誤消息,而實際上未映射播放器,並且我已經在另一條語句中使用它了。

我猜你的實體名稱是Player ,而不是球員權利?

IQuery query = session.CreateQuery("UPDATE Player SET " + Column + "= :newValue WHERE PlayerID=:PlayerID");
            query.SetParameter("newValue", Column);
            query.SetParameter("PlayerID", PlayerID);
            query.ExecuteUpdate();

您不必在hql中指定表的名稱,只需指定實體的名稱。

除此之外,您還可以使用代理,只需使用session.Load(...)為給定的ID加載代理對象。 這不會打到數據庫。 但是您可以使用代理進行session.Deletesession.Delete對象。

在此處查看更多詳細信息: http : //nhibernate.info/blog/2009/04/29/nhibernate-the-difference-between-get-load-and-querying-by-id.html

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM