gpt4 book ai didi

c# - TdsParserStateObject - 处置? Entity Framework

转载 作者:太空狗 更新时间:2023-10-29 21:56:53 28 4
gpt4 key购买 nike

我正在使用 EF,但遇到 TdsParserStateObject 问题。

我多次调用这个方法:

 public void SaveDataFromERP(string synchronizationType, string xml,int errorsHandlingPercentagePartition)
{
var param1 = new SqlParameter("XML", SqlDbType.Xml);
param1.Value = xml;
var param2 = new SqlParameter("PartitionedPackagePercentage", SqlDbType.Int);
param2.Value = errorsHandlingPercentagePartition;
((IObjectContextAdapter)this).ObjectContext.ExecuteStoreQuery<dynamic>(
$"exec [Synchronization].[Import{synchronizationType}] @XML, @PartitionedPackagePercentage", param1 , param2 );
}

我的仓库包括

SynchronizationRepository : ISynchronizationRepository
{
private readonly POSDBContext _context = new POSDBContext();
public void SaveData(string typeName, string xmlFile, int errorsHandlingPartitionPercentage)
{
_context.SaveData(typeName, xmlFile,errorsHandlingPartitionPercentage);
}
}

当我调用 ExecuteStoreQuery 时,我可以在内存中看到新对象 TdsParserStateObject

不幸的是,我必须多次按顺序调用此方法(大量数据)。结果大约是 60 个 TdsParserStateObject,它占用了大量内存。

此外,这些对象不会在一段时间后消失。

是否可以处理它们?

enter image description here

最佳答案

通过删除在某种程度上解决了我自己的问题:

“MultipleActiveResultSets=True”

来 self 的连接字符串。我的连接是在后台线程上建立的,所以这在某种程度上解释了为什么我看到了增长:

https://learn.microsoft.com/en-us/dotnet/framework/data/adonet/sql/enabling-multiple-active-result-sets

关于c# - TdsParserStateObject - 处置? Entity Framework ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36330343/

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