加载所有sql服务器表的所有实体的最快方法

时间:2019-05-30 15:10:05

标签: c# nhibernate

我想转储SQL Server数据库的所有数据,并最终将所有内容序列化为一个字节[]。

我尝试了以下代码:

    public static IList<object> DumpCfg(Tenant tenant)
    {
        var factory = ReplicationData.GetCfgFactory(tenant, Alcuin.Configuration.Data.Mappings.MappingStrategyType.EagerLoading, false);

        var session = factory.OpenSession();

        try
        {
            var appConfig = session.CreateCriteria<ApplicationConfiguration>()
                .Add(Restrictions.Eq("Name", tenant.Name))
                .UniqueResult();

            List<object> l = (((SessionImpl)session).PersistenceContext.EntityEntries as IdentityMap).EntryList
                .OfType<DictionaryEntry>()
                .Select(o => o.Key)
                .ToList();

            return l;
        }
        finally
        {
            if (session.Connection != null)
                session.Connection.Close();

            session.Close();
        }
    }

但是需要太多时间,是否可以进行更优化? 我可以通过SQL事件探查器看到它由查询组成,如果我的数据库包含200个表,那么我预计只会观察到200个SQL查询。

0 个答案:

没有答案