.net 使用NHibernate执行查询
我是NHibernate的新手,所以这是一个基本问题 当通过NHibernate会话从数据库获取数据时,到目前为止,我只使用了Id,例如:.net 使用NHibernate执行查询,.net,nhibernate,.net,Nhibernate,我是NHibernate的新手,所以这是一个基本问题 当通过NHibernate会话从数据库获取数据时,到目前为止,我只使用了Id,例如: var customer = Session.Get<Customer>(customerId); var customer=Session.Get(customerId); 但是如何基于不是Id的属性获取对象呢?例如,通过搜索Name属性来获取客户。这可能会返回0-n个答案,所以我假设我会得到一个列表 使用HQL,它看起来像: sessi
var customer = Session.Get<Customer>(customerId);
var customer=Session.Get(customerId);
但是如何基于不是Id的属性获取对象呢?例如,通过搜索Name属性来获取客户。这可能会返回0-n个答案,所以我假设我会得到一个列表 使用HQL,它看起来像:
session.CreateQuery("from Customer where Name=:name")
.SetString("name", name)
.List<Customer>();
session.CreateQuery(“来自客户,其中Name=:Name”)
.SetString(“名称”,名称)
.List();
这里基本上有两个选项:和。Hibernate文档非常棒,因此我强烈建议您阅读它,而不是让我发布一个不必要的冗长答案。另一个选项是最近的
用法如下所示=>
var employees = Session.Linq<Employee>()
.Single(employee=>employee.Name==name);
var employees=Session.Linq()
.Single(employee=>employee.Name==Name);
Linq扩展方法返回实现IQueryable的INHibernateQueryable接口。查询NHibernate的方法有很多:
- HQL
- 标准
- 举例查询
- 查询条件
- LINQ(提供2个不同的LINQ提供程序)
- H-SQL
- SQL
- 您可以实现自己的查询方式