1
我在EF中遇到了一個相當典型的問題。隨着我繼續訪問我的上下文,它追蹤和列舉的檢測項目數量增加。最終,一切都會慢慢爬行。下面是目前我在做什麼來解決這個問題:有沒有辦法在EF中詢問上下文有多大跟蹤集?
public class ContextGenerator
{
private IContext _context;
private string _connString;
private int accessCount;
public ContextGenerator(string conn)
{
_connString = conn;
}
public IContext Instance
{
get
{
if (accessCount > 100)
{
Dispose();
}
if (_context == null)
{
var conn = EntityConfigurationContext.EntityConnection(_connString);
_context = new MyDbContext(conn);
accessCount = 0;
}
++accessCount;
return _context;
}
}
public void Dispose()
{
_context.Dispose();
_context = null;
}
}
這主要工作,以防止過於笨重我的背景下,作爲其配置,並創建一個新的每100個訪問,但它似乎很笨重,雜亂。此外,100是任意選擇的,並且不能保證有人不會在一次訪問中插入一百萬件事物。有沒有辦法,而不是問上下文本身,如果它變得「太大」?
或者如果任何人有解決這個問題的更好的主意,我願意提出建議。