EF Core 캐시 구성
이 섹션에서는 다음을 사용하는 데 필요한 구성에 중점을 둡니다. NCache Entity Framework 애플리케이션의 확장 메서드를 사용하고 EF Core 캐시를 만듭니다. 이를 위해서는 엔터티를 직렬화하고 지정해야 합니다. NCache-특정 구성 DbContext
EF 지원서.
주의 사항
이 기능은 다음에서도 사용할 수 있습니다. NCache Professional.
NCache 또한 만료 또는 제거로 인해 항목이 무효화되는 경우 캐시를 동기화할 수 있는 유연성을 사용자에게 제공합니다. 이렇게 하면 캐시의 데이터를 최신 상태로 유지하고 만료된 항목을 가져오기 위해 데이터베이스로 네트워크를 이동하는 횟수가 줄어듭니다.
EFCore 캐시에서 엔터티 직렬화
EF Core Cache를 구성하기 전에 데이터베이스 모델의 모든 엔터티를 직렬화하여 저장해야 합니다. NCache따라서 직렬화 가능으로 표시되어야 합니다.
[Serializable]
public partial class Customers
{
// Getters setters
}
DbContext에서 캐시 구성 지정
EF 코어 캐시를 구성하려면 NCache 에 지정된 구성 가능한 캐시 속성을 제공합니다. DbContext
. 그만큼 NCacheConfiguration
클래스를 사용하면 사용자가 애플리케이션에 대한 속성을 지정하고 로거를 구성할 수 있습니다.
중대한
구성해야 합니다. NCache FBI 증오 범죄 보고서 DbContext
또는 애플리케이션의 진입점으로 사용하지 않으면 다음과 같은 예외가 발생합니다. NCache 초기화 구성이 제공되지 않았습니다.
- 다음 코드 샘플은 NCache 확장된 EF 애플리케이션의 경우
DbContext
수업SqlServer
,DependencyType
및CacheConnectionOptions
캐시에 대한 클러스터 포트, 재시도 간격 및 연결 재시도를 지정합니다. 구성CacheId
및ConnString
에 지정되었습니다. 앱 구성 파일 :
public partial class NorthwindContext : DbContext
{
...
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
// Parameters specified in App.config
string cacheId = ConfigurationManager.AppSettings["CacheId"];
string connString = ConfigurationManager.AppSettings["ConnString"];
bool errorEnabled = ConfigurationManager.AppSettings["ErrorEnabled"];
int bulkInsertChunkSize = ConfigurationManager.AppSettings["BulkInsertChunkSize"];
// Configure cache with connection retries and security
var options = new CacheConnectionOptions();
options.RetryInterval = 3;
options.ConnectionRetries = 2;
options.Port = 7801;
// Configure cache with security
options.UserCredentials.UserID = "john_smith";
options.UserCredentials.Password = "12345";
NCacheConfiguration.Configure(cacheId, DependencyType.SQLServer, errorEnabled, bulkInsertChunkSize, options);
optionsBuilder.UseSqlServer(connString);
}
}
SQL 종속성을 위한 기본 스키마 구성
데이터베이스 종속성 쿼리는 일반 SQL 쿼리와 약간 다릅니다. 따라서 SQL Server는 이러한 쿼리를 유효한 것으로 받아들이지 않습니다. 이 문제를 방지하려면 dbo
기본 스키마가 설정된 테이블 이름 앞에 추가해야 합니다. dbo
. 이는 다음 코드 줄을 추가하여 수행할 수 있습니다. OnModelCreating
의 방법 DbContext
수업:
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.HasDefaultSchema("dbo"); // add this line for SQL dependency
// rest of the entity model code goes here
}
생성된 이 쿼리를 사용하여 데이터베이스 종속성을 구성할 수 있습니다.
구성 옵션
에서 제공하는 구성 옵션 NCacheConfiguration
위치 :
회원 | 타입 | 상품 설명 |
---|---|---|
CacheId |
string |
Entity Framework 애플리케이션에서 제공하는 데 사용할 캐시의 이름을 지정합니다. 캐시 이름을 지정하지 않으면 구성 예외가 발생합니다. |
DatabaseType |
DependencyType |
Entity Framework에서 사용 중인 데이터베이스에 대해 캐시에 알리는 열거형입니다. 값은 다음과 같습니다.Other = 0SqlServer = 1Oracle = 2이 열거형은 데이터 무효화를 처리합니다. 데이터베이스에서 데이터가 업데이트되면, NCache 오래된 데이터의 사용을 방지하기 위해 다음 쿼리 시 데이터 원본에서 새 데이터를 제공할 수 있도록 영향을 받는 엔터티에 따라 캐시된 쿼리를 제거합니다. 주의사항: Entity Framework Core는 Oracle을 지원하지 않으므로 피해야 합니다. 주의사항: DependencyType 로 설정 Other , 데이터베이스 종속성이 생성되지 않습니다.주의사항: DependencyType 로 설정 SqlServer , 데이터 무효화에는 SQL 종속성이 필요하므로 SQL 서버에서 SQL 서비스 브로커를 활성화해야 합니다. SQL 종속성에는 다음과 같은 특별한 구성 변경이 필요합니다. DbContext . |
InitParams |
CacheConnectionOptions |
다음을 포함하는 클래스 맞춤형 매개변수 사용자가 지정한 구성으로 캐시를 초기화합니다. |
IsConfigured |
bool |
여부를 지정합니다. DbContext 재정의 옵션으로 구성되었는지 여부. |
방법 | 상품 설명 |
---|---|
Configure |
Entity Framework 애플리케이션에서 제공하는 데 사용할 캐시를 구성합니다. 그러면 사용자가 지정한 속성에 따라 캐시 구성이 설정됩니다. 캐시 ID, 데이터베이스 종속성 유형 및 캐시에 대한 선택적 초기화 매개변수를 사용합니다. |
ConfigureLogger |
의 인스턴스를 구성합니다. Microsoft.Extensions.Logging.ILogger 생활 Microsoft.Extensions.Logging.ILoggerFactory 캐싱 공급자의 작업 세부 정보를 기록합니다. |
IsLoggerEnabled |
지정된 로그 수준에서 로거가 활성화되었는지 여부를 지정합니다. |
errorEnabled |
사용자가 다음에 대해 예외를 던질지 여부를 결정할 수 있습니다. FromCache 및 LoadIntoCache 검색어. |
bulkInsertChunkSize |
이는 대량의 엔터티를 더 작은 청크로 나누고 캐시를 청크별로 업데이트합니다. 기본적으로 bulkInsertChunkSize 1000입니다. |
도 참조
.그물: Alachisoft.NCache.EntityFrameworkCore 및 Alachisoft.NCache.런타임.캐싱 네임 스페이스.