สำหรับการแม็ปคีย์หลักแบบผสมโดยใช้เอนทิตีเฟรมเวิร์กเราสามารถใช้สองวิธี
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