LINQ与HQL,两种对象化的查询语言;LINQ现在已集成到C#3.0中;HQL得到一些ORM的支持,如NHibernate,Castle等;
首次创建一个领域类型,以下是LINQ的查询方式:
Public class User
{
prblic string Name{get;set}
}
var userList = new List<User>{new User(){Name = "a";},
new User(){Name = "b";},
new User(){Name = "c";} }
var selectedUser = from u in userList where u.Name == "a" select u;
在这里我们创建数据库持久化到领域模型;以Northwind库中的Customers表为例,持久化后产生一领域模型Customers类;
HQL在NHibernate支持下的查询方式:
string hql = "from Customers as a where a.CompanyName='jack'";
Query query = session.createQuery(hql);
List lst = query.list();
HQL参考资料:http://www.hibernate.org/hib_docs/reference/en/html/queryhql.html