Tag: caching

Cassandra Csharp驱动程序中准备好的语句缓存问题

我相信我发现了如何在Cassandra csharp驱动程序(版本2.7.3)的StatementFactory中缓存预准备语句的逻辑错误。 这是用例。 Guid key = Guid.NewGuid(); // your key ISession session_foo = new Session(“foo”); //This is pseudo code ISession session_bar = new Session(“bar”); var foo_mapper = new Mapper(session_foo); //table foo_bar var bar_mapper = new Mapper(session_bar); //table foo_bar await Task.WhenAll( foo_mapper.DeleteAsync(“WHERE id = ?”, key), bar_mapper.DeleteAsync(“WHERE id = ?”, key)); 我们发现在运行此删除后,只有第一个请求成功。 在使用StatementFactory的源代码后潜水 public Task GetStatementAsync(ISession […]

HttpRuntime.Cache等效于asp.net 5,MVC 6

所以我刚刚从ASP.Net 4迁移到ASP.Net 5.我现在正试图改变一个项目,以便它在新的ASP.Net中运行,但当然会出现一大堆错误。 有谁知道HttpRuntime的等效扩展是什么,因为我似乎无法在任何地方找到它。 我正在使用缓存对象客户端。 HttpRuntime.Cache[Findqs.QuestionSetName] ‘Findqs’只是一个普通的对象

如何在Entity Framework 6中禁用模型缓存(Code First方法)

在MSDN文档之后我们可以阅读: 然后缓存该上下文的模型,该模型适用于app域中上下文的所有其他实例。 可以通过在给定的ModelBuidler上设置ModelCaching属性来禁用此缓存 ,但请注意,这会严重降低性能。 问题是模型构建器不包含任何名为ModelCaching的属性。 如何禁用模型缓存(例如,在运行时更改模型配置)?

持久化entity framework查询缓存

我有一个ASP.NET MVC 5 Web应用程序,并使用EF 6.1访问我的数据库。 我有一些相当复杂的LINQ查询,最多需要10秒才能编译,但之后会在几毫秒内执行。 EF确实缓存了这些查询,第二次执行查询时,它会在几毫秒内返回。 但是这个缓存不会持久存在,所以在每个应用程序重新启动时,需要重新编译查询,再次需要10秒。 有没有办法保持这个查询缓存,以便它能够在应用程序重启后幸存下来?

如何缓存.NET Web API请求(并使用w / AngularJS $ http)

我有一个用ASP.NET编写的Web API,我通过AngularJS $http消费。 我已经在我的AngularJS工厂中启用了缓存,如下所示,但每个请求仍然返回200的响应,从不返回200 (from cache)或304 (并且每个请求我的意思是在同一页面上多次发出相同的web api请求,重新访问页面我已经访问过包含Web API请求,刷新所述页面等)。 angular.module(‘mapModule’) .factory(‘GoogleMapService’, [‘$http’, function ($http) { var googleMapService = { getTags: function () { // $http returns a promise, which has a ‘then’ function, which also returns a promise return $http({ cache: true, dataType: ‘json’, url: ‘/api/map/GetTags’, method: ‘GET’, data: ” }) .then(function (response) { return […]

EF Core 2.0.0查询filter正在缓存TenantId(针对2.0.1+进行了更新)

我正在构建一个多租户应用程序,并且遇到了我认为EF Core在请求中缓存租户ID的困难。 唯一似乎有帮助的是在我登录和退出租户时不断重建应用程序。 我认为它可能与IHttpContextAccessor实例是单例有关,但它不能作为范围,当我在没有重建的情况下登录和退出时,我可以看到租户的名称在页面顶部发生变化,所以它不是问题。 我能想到的另一件事是EF Core正在进行某种查询缓存。 我不确定为什么它会考虑它是一个范围的实例,它应该在每个请求上重建,除非我错了,我可能是。 我希望它的行为类似于作用域实例,因此我可以在模型构建时在每个实例上简单地注入租户ID。 如果有人能指出我正确的方向,我真的很感激。 这是我目前的代码: TenantProvider.cs public sealed class TenantProvider : ITenantProvider { private readonly IHttpContextAccessor _accessor; public TenantProvider( IHttpContextAccessor accessor) { _accessor = accessor; } public int GetId() { return _accessor.HttpContext.User.GetTenantId(); } } …注入TenantEntityConfigurationBase.cs ,我用它来设置全局查询filter。 internal abstract class TenantEntityConfigurationBase : EntityConfigurationBase where TEntity : TenantEntityBase where TKey : IEquatable […]

entity framework6编译LINQ查询

我正在尝试通过缓存查询来提高Web应用程序的性能。 public static Func<myEntity, List, IQueryable> CompiledDuplicatedResponses = CompiledQuery.Compile<myEntity, List, IQueryable>( (db, hashes) => from r in db.FormResponse from h in db.IndexHASHes from d in hashes where r.id == h.FormResponseID && h.IndexHASHString == d.hash select r); 我收到的错误是在编译时: 类型’myEntity’不能在generics类型或方法’System.Data.Entity.Core.Objects.CompiledQuery.Compile(System.Linq.Expressions.Expression>)’中用作类型参数’TArg0’。 没有从’myEntity’到’System.Data.Entity.Core.Objects.ObjectContext’的隐式引用转换。 我正在使用EF6

entity framework4和查询结果的缓存

假设我有一个表或2包含永远或很少更改的数据,是否有任何尝试缓存这些数据的点? 或者,当我第一次加载数据时,EF上下文会为我缓存该数据吗? 我正在考虑从这些表中加载所有数据并使用静态列表或其他东西将数据保存在内存中,并在我需要同一上下文中的数据时查询内存数据而不是表。 我所说的那些表通常包含几百行数据。

为什么ConcurrentDictionary.GetOrAdd(key,valueFactory)允许调用valueFactory两次?

我使用并发字典作为线程安全的静态缓存,并注意到以下行为: 来自GetOrAdd上的MSDN文档 : 如果在不同的线程上同时调用GetOrAdd,可能会多次调用addValueFactory,但是对于每次调用,它的键/值对可能不会添加到字典中。 我希望能够保证工厂只被召唤一次。 是否有任何方法可以使用ConcurrentDictionary API执行此操作而无需借助我自己的单独同步(例如锁定valueFactory)? 我的用例是valueFactory在动态模块中生成类型,所以如果同时运行同一个键的两个valueFactories,我点击: System.ArgumentException: Duplicate type name within an assembly.

使用c#的AppFabric缓存示例

我目前正在研究将AppFabirc缓存集成到我的.net c#应用程序中,并寻找一些代码示例。 有没有可用的AppFabric缓存可用的开源或代码示例我可以看一下?