gpt4 book ai didi

linq-to-nhibernate - 如何在 linq 到 NHibernate 中检查转换后的 sql 查询?

转载 作者:行者123 更新时间:2023-12-04 07:00:41 25 4
gpt4 key购买 nike

我正在使用 Linq 到 NHibernate。

我有以下测试用例:

[TestMethod]
[DeploymentItem("hibernate.cfg.xml")]
public void Category_Should_GetAllByLinq()
{
// Arrange
IRepository<Category> repo = new CategoryRepository();

//Act
IList<Category> list = repo.GetListByLinq();

//Assert
Assert.IsTrue(list.Count > 0);
}

而且我在 CategoryRepository 类中有以下代码:
public IList<Category> GetListByLinq()
{
ISession session = NHibernateHelper.OpenSession();

// When following statement is executed, How to check converted real sql query?
var query = from c in session.Linq<Category>()
select c;

return query.ToList();
}

我的问题是,一旦执行了 linq to nhibernate 语句,如何检查真正的转换后的 sql 查询?任何方法?

我知道我可以使用 SQL 探查器,但是我想在测试用例中使用 Mock 对象,所以我不想在任何与数据库相关的方法中看到它。

最佳答案

好问题。

我认为断言生成的 SQL 的最好方法是使用 IInterceptor并钩入 OnPrepareStatement .

或者,如果您可以在调试期间只在输出窗口中看到 SQL 语句,您可以启用 show_sql选项。

关于linq-to-nhibernate - 如何在 linq 到 NHibernate 中检查转换后的 sql 查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1898667/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com