我想找到使用做这样的事情时,从数据库中获取数据的这三种方式的区别: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