我是NHibernate的新手,所以这是一个基础问题。
在通过NHibernate会话从数据库获取数据时,我到目前为止只使用了Id,例如:
var customer = Session.Get<Customer>(customerId);
但是如果我想通过不是Id的属性来获取对象,该怎么做呢?例如根据“Name”属性搜索客户。这可能会返回0-n个答案,所以我认为我会得到一个列表?
我是NHibernate的新手,所以这是一个基础问题。
在通过NHibernate会话从数据库获取数据时,我到目前为止只使用了Id,例如:
var customer = Session.Get<Customer>(customerId);
但是如果我想通过不是Id的属性来获取对象,该怎么做呢?例如根据“Name”属性搜索客户。这可能会返回0-n个答案,所以我认为我会得到一个列表?
var employees = Session.Linq<Employee>()
.Single(employee=>employee.Name==name);
session.CreateQuery("from Customer where Name=:name")
.SetString("name", name)
.List<Customer>();
这里基本上有两种选择:HQL 和 Criteria API。Hibernate 的文档非常好,所以我强烈建议您阅读它,而不是让我发表一个过于冗长的答案。
查询 NHibernate 的方式有很多: