FileContextCore는 엔티티 프레임 워크 코어 용 "데이터베이스"-제공자이며 파일에 정보를 저장하는 기능을 추가합니다. 파일을 복사, 편집 및 삭제하는 이점으로 인해 빠른 개발을 가능하게합니다.
이 프레임 워크는 devmentor (https://github.com/pmizel/devmentor.context.filecontext)에 의한 filecontext 아이디어를 기반으로합니다.
!이 확장은 생산 시스템에서 사용하기위한 것이 아닙니다!
https://www.nuget.org/packages/filecontextcore/
PM > Install-Package FileContextCore
Startup.cs 에서는 이것을 사용합니다.
public void ConfigureServices ( IServiceCollection services )
{
.. .
services . AddDbContext < Context > ( options => options . UseFileContextDatabase ( ) ) ;
.. .
} OnConfiguring 방법을 무시하십시오 DBContext의 OnConfiguring 메소드를 무시하여 설정을 적용 할 수도 있습니다.
protected override void OnConfiguring ( DbContextOptionsBuilder optionsBuilder )
{
optionsBuilder . UseFileContextDatabase ( ) ;
} 간단한 예제를 보려면 : 예제를 확인하십시오
DotnetFiddle.net : Demo 에서이 예제로 플레이 할 수 있습니다.
기본적으로 Extension은 JSON 서신화 및 DefaultFileManager 사용합니다.
다른 직렬화 방법을 지원하여 다른 직렬화 방법을 지원할 수 있습니다.
System.xml을 사용하여 데이터를 직렬화합니다
optionsBuilder . UseFileContextDatabase < XMLSerializer , DefaultFileManager > ( ) ;csvhelper (https://joshclose.github.io/csvhelper/)를 사용하여 데이터를 직렬화합니다.
optionsBuilder . UseFileContextDatabase < CSVSerializer , DefaultFileManager > ( ) ;NewTonsoft JSON.NET을 사용하여 데이터를 연속화합니다 (http://www.newtonsoft.com/json)
optionsBuilder . UseFileContextDatabase < JSONSerializer , DefaultFileManager > ( ) ;아니면 그냥
optionsBuilder.UseFileContextDatabase();
NewTonsoft json.net을 사용하여 BSON에 데이터를 연속화합니다 (http://www.newtonsoft.com/json)
optionsBuilder . UseFileContextDatabase < BSONSerializer , DefaultFileManager > ( ) ;파일을 .xlsx-file에 저장하고 Excel을 사용하여 데이터를 빠르게 편집 할 수 있습니다.
.NET Core (https://github.com/vahidn/epplus.core)에 eeplus 구현을 사용합니다.
optionsBuilder . UseFileContextDatabase < EXCELStoreManager > ( ) ;비밀번호로 Excel 파일을 보호하려면 :
optionsBuilder . UseFileContextDatabase < EXCELStoreManager > ( password : "<password>" ) ;Linux 시스템에서 실행됩니다
sudo apt-get update
sudo apt-get install libgdiplus
파일 관리자는 파일 저장 방법을 제어합니다.
기본 파일 관리자는 단지 일반 파일을 만듭니다.
optionsBuilder . UseFileContextDatabase < JSONSerializer , DefaultFileManager > ( ) ;암호화 된 파일 관리자는 암호로 파일을 암호화합니다.
optionsBuilder . UseFileContextDatabase < JSONSerializer , EncryptedFileManager > ( password : "<password>" ) ; 기본적으로 파일은 appdata 라는 실행중인 응용 프로그램의 하위 폴더에 저장됩니다. 이 동작을 제어하려면 사용자 정의 위치를 정의 할 수도 있습니다.
optionsBuilder . UseFileContextDatabase ( location : @"C:UsersmjanatzekDocumentsProjectstest" ) ; 아무것도 구성되지 않으면 응용 프로그램의 모든 파일이 평평한 폴더에 저장됩니다. 데이터베이스의 이름을 선택적으로 정의 할 수 있으며 해당 모든 데이터가 하위 폴더에 저장됩니다. 따라서 여러 DBContext-Configurations에서 FileContext를 사용할 수 있습니다.
optionsBuilder . UseFileContextDatabase ( databasename : "database" ) ; 원하는 경우 사용자 지정 시리얼 라이저, 파일 관리자 및 매장 관리자를 만들 수 있습니다.
사용자 정의 시리얼 라이저를 만들려면 인터페이스 ISerializer 구현하십시오.
데이터 구현 인터페이스 IFileManager 의 저장을 제어하려면
IStoreManager 구현하는 매장 관리자를 만들려면
사용자 정의 제공 업체를 추가 한 후에는 종속성 주입에서 일시적인 종속성으로 추가해야합니다.
새 공급 업체와 함께 PR을 만들면 FileContextCore에 추가하겠습니다.
| filecontext 버전 | EF 코어 버전 |
|---|---|
| 3.4.* | 3.1.0 |
| 3.3.* | 3.0.0 |
| 3.2.* | 3.0.0 |
| 3.0.1/3.0.0/2.2.6 | 2.2.6 |
| 2.2.0 | 2.2.0 |
EF Core는 현재 모델에서 주석을 사용하여 사용자 정의 테이블 이름을 정의하는 것을 지원하지 않는 것 같습니다. OnModelCreating -method를 사용하여 사용자 정의 테이블 이름을 정의하십시오.
protected override void OnModelCreating ( ModelBuilder modelBuilder )
{
modelBuilder . Entity < User > ( )
. ToTable ( "custom_user_table" ) ;
} 예를 들어 데이터를 custom_user_table.json 이라는 파일에 저장합니다.
Morris Janatzek (Morrisjdev)