每个 session 的 nHibernate 统计信息

标签 nhibernate

我知道我可以使用这些技术获得 nHibernate 的全局统计信息

http://nhibernate.info/blog/2008/10/26/exploring-nhibernate-statistics-part-1-simple-data-fetching.html

我所追求的是一种在当前线程中获取当前 session 统计信息的方法。

EG,我想知道在我的 session 中加载了多少实体,进行了多少数据库查询等。

我看到 hibernate 犀牛可以分解每个 session 的统计数据,所以 NH 必须以某种形式存储它?

戴夫

最佳答案

而不是使用 ISessionFactory.Statistics , 只需使用 ISession.Statistics .

class Program
{
    static void Main(string[] args)
    {
        ISession session = NHibernateHelper.GetSession();
        var stats = session.Statistics;
        Console.WriteLine("Entity count: {0}", stats.EntityCount);
        Console.WriteLine("Collection count: {0}", stats.CollectionCount);
        Console.ReadLine();
    }
}

但是,与 session 工厂级别相比, session 级别的统计数据是有限的。

关于每个 session 的 nHibernate 统计信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23525341/

相关文章:

nhibernate - 如何使用 Linq to NHibernate 获取不同的值?

nhibernate - 在 Fluent Nhibernate 中设置实体和关系的缓存?

NHibernate (3.1.0.4000) NullReferenceException 使用 Query<> 和 NHibernate Facility

nhibernate - QueryOver API OrderBy 使用案例

NHibernate 不会创建代理,除非 class...lazy=true

mysql - NHibernate.ISession.Linq<T>.Where(expression) 检索整个表

nhibernate - NHibernate 的 NServiceBus 警告

nhibernate - 命名查询未知

c# - 通过 NHibernate 和 AutoMapper 将 DTO 的实体 ID 转换为域的实体

c# - 我如何使用 nHibernate 保留原始数组