엔티티 프레임 워크를 사용하는 복합 기본 키 매핑의 경우 두 가지 접근 방식을 사용할 수 있습니다.
1) OnModelCreating () 메서드 재정의
예를 들어 : 아래와 같이 VehicleFeature라는 모델 클래스가 있습니다.
public class VehicleFeature
{
public int VehicleId { get; set; }
public int FeatureId{get;set;}
public Vehicle Vehicle{get;set;}
public Feature Feature{get;set;}
}
내 DBContext의 코드는 다음과 같습니다.
public class VegaDbContext : DbContext
{
public DbSet<Make> Makes{get;set;}
public DbSet<Feature> Features{get;set;}
public VegaDbContext(DbContextOptions<VegaDbContext> options):base(options)
{
}
// we override the OnModelCreating method here.
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.Entity<VehicleFeature>().HasKey(vf=> new {vf.VehicleId, vf.FeatureId});
}
}
2) 데이터 주석으로.
public class VehicleFeature
{
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
[Key]
public int VehicleId { get; set; }
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
[Key]
public int FeatureId{get;set;}
public Vehicle Vehicle{get;set;}
public Feature Feature{get;set;}
}
자세한 내용은 아래 링크를 참조하십시오.
1) https://msdn.microsoft.com/en-us/library/jj591617(v=vs.113).aspx
2) EF 6 Fluent Api를 사용하여 복합 고유 키를 추가하는 방법은 무엇입니까?
SomeId
string
int