एंटिटी फ्रेमवर्क का उपयोग करते हुए कम्पोजिट प्राथमिक कुंजी को मैप करने के लिए हम दो तरीकों का उपयोग कर सकते हैं।
1) OnModelCreating () विधि को ओवरराइड करके
उदाहरण के लिए: मेरे पास नीचे दिखाए गए अनुसार मॉडल क्लास नाम व्हीकलफ्योर है।
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.1138.bx
2) EF 6 धाराप्रवाह Api का उपयोग करके एक समग्र अद्वितीय कुंजी कैसे जोड़ें?
SomeId
एकstring
या एकint
?