如何通过哪里从NHibernate表中获取数据
本文关键字:获取 数据 NHibernate 何通过 | 更新日期: 2023-09-27 18:26:10
我在我的项目NHibernate中使用的是这样的:
public class DBHelper
{
private static ISessionFactory sessions;
public static void Configure()
{
sessions = new Configuration().Configure().AddClass(typeof(Clients)).BuildSessionFactory();
//ISessionFactory factory = Fluently.Configure().Mappings(m => m.FluentMappings.AddFromAssemblyOf<Clients>()).Database(MsSqlConfiguration.MsSql2005.ConnectionString(c => c.FromConnectionStringWithKey(DBConnection.GetConnectionString())).BuildSessionFactory();
}
public static void Insert(Clients pb)
{
using (ISession session = sessions.OpenSession())
using (ITransaction tx = session.BeginTransaction())
{
session.Save(pb);
tx.Commit();
}
}
public static void UpdateContact(Clients pb)
{
using (ISession session = sessions.OpenSession())
using (ITransaction tx = session.BeginTransaction())
{
session.Update(pb);
tx.Commit();
}
}
public static void DeleteContact(Clients pb)
{
using (ISession session = sessions.OpenSession())
using (ITransaction tx = session.BeginTransaction())
{
session.Delete(pb);
tx.Commit();
}
}
}
我有简单的树方法:插入、删除、保存。现在我需要从DB表中获取所有数据或一些类似模拟的数据从id为"…"的客户端中选择*
您的选项是:
-
条件查询
-
QueryOver查询
-
HQL
-
Linq
-
本机SQL
就我个人而言,我非常喜欢QueryOver API:
var clients = session.QueryOver<Clients>().Where(x => x.Name == "Foobar").List();
如果您只需要通过实体ID获取实体,则可以使用get或Load
var client = session.Get<Clients>(5);
如果你搜索NHibernate教程,你肯定会找到很多信息。我听说过《NHibernate之夏》的好消息,尽管我个人还没有看过。