-
[asp.net core] EntityFramwork Core Oracle 연동하기C#(asp.net | asp.net core) 2021. 7. 9. 15:58728x90
Visual Studio 에서 EntityFramework Core와 Oracle 이 연동하는 방법을 알아보겠다
우선 EntityFramework Core와 Oracle EntityFramework Core를 설치한 상태이다
Model 생성
Models 폴더에 DB에 저장할 객체 정의하는 클래스를 저장한다
예를 들어 File에 대한 정보를 저장할 UploadFile 이라는 클래스를 생성해보자
using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using System.Linq; using System.Threading.Tasks; namespace VolvoWebDocMVC.Models { public class UploadFile { [Key] public string filePath { get; set; } [Required] public string fileName { get; set; } [Required] public string fileExt { get; set; } } }
각 멤버변수별로 getter, setter 를 생성해주고 변수의 특성을 지정해준다
[Key] : Primary 역할, [Required] : null 값 불가
DBContext 생성
프로젝트에 DataContext 폴더를 생성한다
클래스를 생성한다(필자는 프로젝트명과 연관지어 작성하였다)
using Microsoft.EntityFrameworkCore; using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; using VolvoWebDocMVC.Models; namespace VolvoWebDocMVC.DataContext { public class WebDocDBContext : DbContext { // 1. DB로 가져올 객체를 선언한다 public DbSet<UploadFile> files { get; set; } // 2. TNS정보를 입력하여 Oracle과 연동한다 // xxx는 사용자에 맞게 입력하면 된다 protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) { optionsBuilder.UseOracle( @"Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=xxx.xxx.xxx.x)(PORT=xxxx))(CONNECT_DATA=(SERVICE_NAME=xxxx))); User Id=xxxx;Password=xxxx;"); } // EntityFramework로 DB Table을 만든게 아니라 // 기존 DB Table을 사용하기 때문에 // Model 데이터와 Mapping 필요 protected override void OnModelCreating(ModelBuilder modelBuilder) { modelBuilder.Entity<UploadFile>(entity => { // 첫번째 인자는 Table명, 두번째 인자는 DB UserId를 입력하면된다 entity.ToTable("xxxx", "xxxx"); entity.Property(e => e.filePath).HasColumnName("FILEPATH"); entity.Property(e => e.fileName).HasColumnName("FILENAME"); entity.Property(e => e.fileExt).HasColumnName("FILEEXT"); }); } } }
이러면 Oracle 연동 및 기존 Table과 Model Mapping까지 완료했다
728x90728x90'C#(asp.net | asp.net core)' 카테고리의 다른 글
C# state operation | record 사용법 (0) 2021.08.09 [C#] Web Form cs에서 javaScript 사용하기(alert) (0) 2021.07.13 [asp.net / asp.net core] HttpException (0x80004005) : 최대 요청 길이를 초과했습니다 파일 업로드 에러 (0) 2021.07.07 Visual Studio C#에서 폴더 탐색창, 파일 탐색창 띄우기 (0) 2020.10.30