- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在整个应用程序中都需要数据库中的一些主数据。那么在应用程序中定义这些数据的最佳方法是什么?以及我应该在应用程序中的何处定义,以便每次应用程序启动时我都会在我的应用程序中初始化此主数据。我应该在哪里定义从数据库获取数据的方法?
using System.Linq;
using System.Threading.Tasks;
using Abp.Application.Services.Dto;
using Abp.Authorization;
using Abp.Runtime.Caching;
using Test.Authorization;
using Test.Caching.Dto;
namespace Test.Caching
{
[AbpAuthorize(AppPermissions.Pages_Administration_Host_Maintenance)]
public class CachingAppService : TestAppServiceBase, ICachingAppService
{
private readonly ICacheManager _cacheManager;
public CachingAppService(ICacheManager cacheManager)
{
_cacheManager = cacheManager;
}
public ListResultDto<CacheDto> GetAllCaches()
{
var caches = _cacheManager.GetAllCaches()
.Select(cache => new CacheDto
{
Name = cache.Name
})
.ToList();
return new ListResultDto<CacheDto>(caches);
}
public async Task ClearCache(EntityDto<string> input)
{
var cache = _cacheManager.GetCache(input.Id);
await cache.ClearAsync();
}
public async Task ClearAllCaches()
{
var caches = _cacheManager.GetAllCaches();
foreach (var cache in caches)
{
await cache.ClearAsync();
}
}
}
}
public IServiceProvider ConfigureServices(IServiceCollection services)
{
services.AddMemoryCache();
}
最佳答案
此答案基于 Entity Caching 的文档.
What is the best way to define this data in the application?
[AutoMapFrom(typeof(Person))]
public class PersonCacheItem
{
public string Name { get; set; }
}
Where should I define in the application so that every time applications starts I will initialize this master data in my application? How to add my data to cache? Where do I need to add data to cache?
IEntityCache
)。它是懒加载的。
// Configuration for a specific cache
Configuration.Caching.Configure("MyCache", cache =>
{
cache.DefaultSlidingExpireTime = TimeSpan.FromHours(8);
});
Where should I define the method which will fetch data from DB?
IRepository
.指定
cacheName
如果上面配置。
public class PersonCache : EntityCache<Person, PersonCacheItem>, IPersonCache, ITransientDependency
{
public PersonCache(ICacheManager cacheManager, IRepository<Person> repository)
: base(cacheManager, repository, "MyCache") // "MyCache" is optional
{
}
}
public interface IPersonCache : IEntityCache<PersonCacheItem>
{
}
How will I get data from cache?
public class MyPersonService : ITransientDependency
{
private readonly IPersonCache _personCache;
public MyPersonService(IPersonCache personCache)
{
_personCache = personCache;
}
public string GetPersonNameById(int id)
{
return _personCache[id].Name; // alternative: _personCache.Get(id).Name;
}
}
关于aspnetboilerplate - 如何在 ASP.NET Boilerplate 中使用缓存?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47648086/
我使用 aspnetboilerplate (MVC) 并希望实现忘记密码功能,以允许用户使用登录屏幕上的链接重置自己的密码。 我想这可以通过生成密码重置代码来工作,然后通过电子邮件发送给用户。用户点
我需要确保我的应用程序本身能够升级他的数据库模型(应用迁移) 在 ABP 架构中,我应该在哪里调用 Migrate? context.Database.Migrate(); 由于这是对基础结构逻辑(
我正在使用 aspNetBoilerplate 发送电子邮件(或尝试发送电子邮件) 我已经使用种子数据中的默认设置创建器将设置添加到数据库中,就像这样 namespace ESMPortal.Enti
我正在实现将统计数据发送到主页(仪表板应用程序页面)的应用程序服务。 根据用户的角色(服务需要身份验证),我将使用基于角色的WhereIf()从数据库中提取/聚合数据 特别是如果用户是管理员,我不会使
我刚刚用 Angular 5 下载了最新版本的 AspNetBoilerplate 3.7,我试图使用我创建的新服务。它没有出现在服务代理中。如何从 swagger 更新自动生成的代码? 最佳答案 转
我已经下载了 Angular 5 / .NET 5 project ,通常当我运行命令 npm install 时,我没有任何问题。 但是从昨天开始下载项目并运行此命令时,我收到此错误: C:\Use
我正在尝试扩展 AuditLog 中的实体ASPNET 样板 框架,以便为其添加一些新属性。我试图扩展 AuditLog类 ( ExtendedAuditInfo ) 并实现 AuditStore 的
我正在尝试使用 AspBoilerPlate 作为框架,因为它看起来非常好,而且我一直很难尝试在 Owin Identity 上实现 Multi-Tenancy (几天前我发布了一个问题:Asp.Ne
我正在 ASP.NET 样板引擎中开发服务并从主题中获取错误。错误的性质不清楚,因为我从 ApplicationService 继承,如文档所示。代码: namespace MyAbilities.A
我在整个应用程序中都需要数据库中的一些主数据。那么在应用程序中定义这些数据的最佳方法是什么?以及我应该在应用程序中的何处定义,以便每次应用程序启动时我都会在我的应用程序中初始化此主数据。我应该在哪里定
我正在使用 ABP Boilerplate 6.0 并将 NRules 与我们的平台集成。 我能够使下面的规则起作用,但问题是我不能在规则条件中使用注入(inject)的“_questionRespo
对许多人来说可能是一个愚蠢的问题,但我们正在考虑为我们的下一个项目采用 ASP.NET 样板。有点困惑,因为它似乎有 2 个不同的网站和 2 个不同的 Git 存储库。 第一个是 https://as
是否有任何简单的方法可以在 ASP.NET 样板解决方案中的表示层中实现分页,例如 PagedList.Mvc Nuget 包中的 PagedList 。 我从 Nuget gallery 安装了 P
是否有任何简单的方法可以在 ASP.NET 样板解决方案中的表示层中实现分页,例如 PagedList.Mvc Nuget 包中的 PagedList 。 我从 Nuget gallery 安装了 P
我正在将我的 .NET MVC5 模板转换为 ASPNETZERO 的 .NET Core MVC 模板。因此,我正在转换的所有代码都按照我在 MVC5 模板解决方案中的需要工作。我的方法代码如下所示
我已经使用优秀的 aspnetboilerplate.com 创建了一个项目,但我正在尝试将它用于我现有的 Angular 项目。 我正在尝试设置身份验证功能(用户登录等)。 我已将以下包添加到我的
我正在将我自己的模板集成到 ASP.NET Boilerplate 中,现在我遇到了 JavaScript 错误。 (function() { $(function() { v
我知道这与过去的一些问题重复。但没有真正的解决方案。 One of the related links Another one 我正在使用 .Net Core 3 多页模板。我已经尝试了下面给出的一切
当我尝试使用 app.UseHttpsRedirection() 方法时,它给我一个构建错误: 'IApplicationBuilder' does not contain a definition
当我尝试使用 app.UseHttpsRedirection() 方法时,它给我一个构建错误: 'IApplicationBuilder' does not contain a definition
我是一名优秀的程序员,十分优秀!