我想找到使用做這樣的事情時,從數據庫中獲取數據的這三種方式的區別:NHibernate的差異,獲取<T>和負載<T>
public T GetById(int id) {
using (var db = Database.Session) {
using (var t = db.BeginTransaction()) {
try {
return db.Get<T>(id);
}
catch (Exception) {
if (!t.WasCommitted) {
t.Rollback();
}
throw;
}
}
}
}
或
public T GetById(int id) {
using (var db = Database.Session) {
using (var t = db.BeginTransaction()) {
try {
return Query<T>().First(x=>x.Id == id);
//or something like
//return Query<T>().Where(x=>x.Id == id).FirstOrDefault();
//or
//return QueryOver<T>().Where(x=>x.Id == id).FirstOrDefault;
}
catch (Exception) {
if (!t.WasCommitted) {
t.Rollback();
}
throw;
}
}
}
}
甚至這樣說:
另外還有一個問題,Query()
與QueryOver()
有什麼不同?
我在這裏閱讀了一些在stackoverflow的答案,但由於其中大部分是關於開始使用Linq和NHibernate 3,我想知道今天的情況如何。
也許[這](https://ayende.com/blog/3988/nhibernate-the-difference-between- get-load-and-query-by-id)可以幫助你嗎? – SeM