C# 从数据库获取数据
本文关键字:数据 获取 数据库 | 更新日期: 2023-09-27 18:32:40
我需要增强C#代码的功能。我是C#的新手,但我有很强的Java背景。
我的工作是编写一个新查询,如 JDBC,以从数据库中获取数据。
在下面的方法中,我没有看到任何SQL查询。
这句话是什么意思?这和HibernateHQL相似吗?
from p in Session.Query<MyObject>() select p
谢谢
法典:
public IPagingList<MyObject> ReadMyObjectItems(int start, int limit, IList<Filter> filters)
{
var criteria = Session.CreateCriteria<MyObject>();
if (limit != -1)
{
criteria.SetMaxResults(limit);
criteria.SetFirstResult(start);
}
if (filters != null)
{
foreach (var filter in filters)
{
criteria.Add(Restrictions.InsensitiveLike(filter.Field, "%" + filter.Value + "%"));
}
}
IList<MyObject> report = criteria.List<MyObject>();
int total = (from p in Session.Query<MyObject>() select p).Count();
var pagedResults = new PagingList<MyObject> { List = report, Total = total };
return pagedResults;
}
(from p in Session.Query<MyObject>() select p).Count();
我们只是得到所有对象的计数。
将其重构为
Session.Query<MyObject>().Count()
. 它更易于阅读,在这种情况下,不需要 LINQ。
这是Linq语法。一种强大的查询形式,并入 .Net 和不同的 .Net 框架中。
在您的情况下,您似乎正在使用NHibernate,而该行正在使用NHibernateLinq。(但周围的代码使用的是条件。
要在 NHibernate 中撰写查询,您可以选择使用
- 林克
- 总部
- 标准
它们都有不同的优缺点。
两者都将由NHibernate翻译成SQL。当您尝试访问它时,将获取实际结果,例如读取结果中的项目或将结果转换为列表等。
似乎该项目正在使用像NHibernate这样的ORM。您可以在此处获取更多详细信息:http://nhibernate.info