Entity Framework Core Tutorial 신탁
소개
Oracle .NET 팀은 2018 년 3/4 분기에 EF Core 2.0에 대한 제 1 자 제공 업체를 발표 할 계획이라고 발표했습니다. 자세한 내용은 .NET Core 및 Entity Framework Core에 대한 지침을 참조하십시오.
- EF 팀은 Oracle 데이터베이스 용 샘플 EF 코어 공급자 를 제작했습니다.
- 이 프로젝트의 목적은 Microsoft가 소유 한 EF 핵심 공급자를 생산하는 것이 아니라 Oracle을보다 잘 지원하고 다른 Oracle의 개발을 촉진하기 위해 우리가 해결해야하는 EF Core의 관계형 기능과 기본 기능의 차이를 확인하는 데 도움이됩니다. 오라클 또는 제 3 자에 의한 EF 코어 제공 업체.
Thrid 파티 공급자
Devart.Data.Oracle.EFCore
는 타사 데이터베이스 공급자이며 Entity Framework Core를 Oracle 데이터베이스와 함께 사용할 수 있도록합니다. 이 데이터베이스 공급자를 사용하려면 먼저 Devart.Data.Oracle.EFCore NuGet 패키지를 설치해야합니다. 세 개의 엔티티를 포함하는 간단한 모델을 생각해 봅시다.
public class Customer { public int CustomerId { get; set; } public string FirstName { get; set; } public string LastName { get; set; } public string Address { get; set; } public virtual List<Invoice> Invoices { get; set; } } public class Invoice { public int Id { get; set; } public DateTime Date { get; set; } public int CustomerId { get; set; } [ForeignKey("CustomerId")] public virtual Customer Customer { get; set; } public virtual List<InvoiceItem> Items { get; set; } } public class InvoiceItem { public int InvoiceItemId { get; set; } public int InvoiceId { get; set; } public string Code { get; set; } [ForeignKey("InvoiceId")] public virtual Invoice Invoice { get; set; } }
다음 단계는 사용자 지정 DbContext
클래스를 만드는 것입니다.
public class MyContext : DbContext { public DbSet<Customer> Customers { get; set; } public DbSet<Invoice> Invoices { get; set; } public DbSet<InvoiceItem> InvoiceItems { get; set; } protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) { optionsBuilder.UseOracle(@"User Id=Scott;Password=tiger;Data Source=Ora;"); } }
EF 코어에서 DbContext는 onFfiguring이라는 가상 메서드를 가지고 있습니다.이 메서드는 EF Core에서 내부적으로 호출되며 optionsBuilder 인스턴스에서도 전달되며 optionsBuilder를 사용하여 DbContext에 대한 옵션을 구성 할 수 있습니다.
optionsBuilder에는 UseOracle 메서드가 있습니다. 연결 문자열이 매개 변수로 필요합니다. 모델이 있으면 마이그레이션 을 사용하여 데이터베이스를 만들 수 있습니다.
패키지 관리자 콘솔에서 다음 명령을 실행합니다.
PM> Add-Migration Initial
이 명령은 마이그레이션을 스캐 폴드하여 모델에 대한 초기 테이블 세트를 작성합니다. 성공적으로 실행되면 다음 명령을 실행하십시오.
PM> Update-Database
새 이주를 데이터베이스에 적용합니다. 이제 Oracle 데이터베이스를 사용하여 데이터를 삽입, 삭제 및 업데이트 할 수 있습니다.
using (var context = new MyContext()) { var customer = new Customer { FirstName = "Elizabeth", LastName = "Lincoln", Address = "23 Tsawassen Blvd." }; context.Customers.Add(customer); context.SaveChanges(); }
제한 사항
전담 팀은 Oracle Server에 대해 Entity Framework 기능을 최대한 지원하는 대부분의 기능을 성공적으로 구현했지만 극복 할 수없는 몇 가지 제한 사항이 있습니다.
- Oracle에는 SQL Server OUTER APPLY 및 CROSS APPLY 구문에 해당하는 것이 없습니다.
- Oracle 오브젝트, 배열 유형 및 중첩 테이블을 포함한 사용자 정의 유형은 지원되지 않습니다.