我想更新A N列的表格的一個N-1列僅某些列說N-1列中包含使用NHibernate QueryOver語法N列的表。更新使用QueryOver <T>()方法
我試過的查詢就是這樣的。
public T UpdatePost(Object DateUpdated, object DateExpires, object Id)
{
using (var session=sessionFactory.OpenSession())
{
using (var transaction=session.BeginTransaction())
{
session.Update(DateUpdated, Id);
session.Update(DateExpires, Id);
transaction.Commit();
return session.Get<T>(Id);
}
}
}
調用方法是
obj.UpdatePost(DateTime.Now, DateTime.Now.AddDays(30), 3);
錯誤是
沒有您的映射問題。您可能試圖將System.ValueType映射到NHibernate不允許的地方,或者您錯誤地使用映射到的IDictionary。 ValueType(System.DateTime)不能與IdentityKey一起使用。
如何實現這一目標?
嗨米羅斯拉夫,SetDateTime方法不接受對象作爲參數值,因爲我們是路過DateUpdated,DateExpires.'public牛逼UpdatePost(對象DateUpdated,對象DateExpires,對象ID)'但是我聲明瞭該方法一般我們必須提供實體的類型。您的第二個解決方案適用於實體特定的存儲庫。請查看我的答案,解決方法是在找了幾個小時後找到的。 – viento
啊,好的...你可能試過用'.SetParameter()'代替。 –