我想转储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查询。