测试 CreateSQLQuery

发布于 2024-11-07 03:37:42 字数 465 浏览 0 评论 0原文

我使用 NHibernate CreateSQLQuery 方法来获取我部门的 DTO 对象。

string query = @"SELECT * FROM Departments";
IList<Object[]> resultList = Session.CreateSQLQuery(query)...

而且效果很好。但我也想编写一个测试,但当我编写时它失败了:

 [Test]
 public void CanGetTreeDto()
  {

            IList<DepartmentDto> resultList =  _departmentRepository.GetTreeListDto(idContract);
...
        }

它抛出 SQLiteException 并写入“无法执行查询”。有人可以帮忙吗?

I use NHibernate CreateSQLQuery method to get DTO objects of my departments.

string query = @"SELECT * FROM Departments";
IList<Object[]> resultList = Session.CreateSQLQuery(query)...

and it works well. But also I want to write a test and it fails when I write:

 [Test]
 public void CanGetTreeDto()
  {

            IList<DepartmentDto> resultList =  _departmentRepository.GetTreeListDto(idContract);
...
        }

It throws SQLiteException and writes "could not execute query". Could anybody help?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

喵星人汪星人 2024-11-14 03:37:42

您需要临时映射

IList<DepartmentDto> result = Session.CreateSQLQuery(query)
                                     .SetResultTransformer(Transformers.AliasToBean(typeof(DepartmentDto)))
                                     .List<DepartmentDto>();

此外,您可能需要明确列及其名称。

You need ad-hoc mapping:

IList<DepartmentDto> result = Session.CreateSQLQuery(query)
                                     .SetResultTransformer(Transformers.AliasToBean(typeof(DepartmentDto)))
                                     .List<DepartmentDto>();

Also, you might need to be explicit about the columns as well as its names.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文