gpt4 book ai didi

azure - 使用 Microsoft.ApplicationServer.Caching.DataCacheFactory 时 EF4.1 挂起 120 秒

转载 作者:行者123 更新时间:2023-12-03 04:39:38 27 4
gpt4 key购买 nike

每当应用程序调用时,我都会有一致、可重复的 120 秒挂起

 this.cacheProvider.Add(new CacheItem(cacheKey, data, this.regionName), cachePolicy);

位于 CachedDataSource.cs of the sample. 的第 60 行。 .Add 方法是 Microsoft DLL 的内部方法,我没有它的代码。这是我的参数:

cacheKey = "listofCompanies"
data = // this is an EF 4.0 database first model class with 70 entries... result from IQueryable
this.regionName = "companies"

重现错误:

我有一个数据库优先的 EF4.0 项目,最近通过添加“EntityFramework”引用和 ContextGenerator to my DAL 将其升级到 4.1 .

如果我撤消这些更改,那么我的应用程序将立即发挥作用。

我的 DAL 和存储库存储在与我的 MVC 应用程序不同的 DLL 中。不确定这是否是问题的一部分。

关于我的存储库

    /// Sample repository.  Note that I return List<T> as IEnumerable, 
/// and I use IDisposable
///
public class CompanyRepository : DisposableBase, ICompanyRepository
{
public IEnumerable<CompanyDetail> GetOneCompany(int? CompanyID)
{
var t = from c in _entities.CompanyDetail
where c.CompanyID == CompanyID.Value
select c;
return t.ToList();
}
}

/// <summary>
/// Disposable implementation based on advice from this link:
/// from Http://www.asp.net/entity-framework/tutorials/implementing-the-repository-and-unit-of-work-patterns-in-an-asp-net-mvc-application
/// </summary>
public class DisposableBase : IDisposable
{
protected TLSAdminEntities1 _entities;

public DisposableBase()
{
_entities = new TLSAdminEntities1();
disposed = false;
}

private bool disposed ;
protected virtual void Dispose(bool disposing)
{
if (!this.disposed)
{
if (disposing)
{
_entities.Dispose();
}
}
this.disposed = true;
}
public void Dispose()
{
Dispose(true);
GC.SuppressFinalize(this);
}
}

问题

这是一个错误,还是我错误地使用了 EF4.1 或缓存层?

最佳答案

您提到数据是 IQueryable 的结果。您是否尝试过先对数据执行 .ToList(),然后再将其发送到缓存?

关于azure - 使用 Microsoft.ApplicationServer.Caching.DataCacheFactory 时 EF4.1 挂起 120 秒,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8131195/

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