- CRUD에 대한 구현은 C#의 Class Project를 생성하여 구현한다.

MyClassProject
  ㄴ Common
      ㄴ ICRUDRepositoryAsync.cs
  ㄴ myModelDbContext.cs

프로젝트는 SqlServer에 DB를 사용하는 것으로 한다.

패키지는

EntityFrameworkCore.SqlServer
EntityFrameworkCore.Inmemory
Configuration Manager 사용함.(Nuget Package)

using Microsoft.EntityFrameworkCore;
using System.Configuration;

namespace MyProject
{
    public class MyProjectDbContext : DbContext
    {
        public MyProjectDbContext() {}
    
        public MyProjectDbContext(DbContextOptions<MyProjectDbContext> options) : base(options)
        {
            // 이렇게만 두는것이 공식처럼 구현하는 것.
        }
      
        public MyProjectDbContext(DbContextOptionsBuilder optionsBuilder)
        {
            // 닷넷 프레임워크 기반에서 호출되는 코드영역
            // App.config 혹은 Web.config의 연결 문자열을 사용함.
            if(!optionsBuilder.IsConfigured) {
              string connectionString = ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString;
              optionBuilder.UseSqlServer(connectionString);
            }
        }
    
        protected override void OnModelCreating(ModelBuilder modelBuilder)
        {
             // 모델을 생성할떄 자동으로 제약조건(DefaultValue) 추가하기
             modelBuilder.Entity<myModel>().Property(m => m.Created).HasDefaultValueSql("GetDate()");
         }
   
         // 솔루션 관련 모든 테이블에 대한 참조
        public DbSet<MyModel> MyModels { get; set; }
    }
}

+ Recent posts