मैं एक तालिका में इकाई को मैप करने के लिए ईएफ 4 का उपयोग करना चाहता हूं जिसमें पीके के रूप में अनुक्रमिक मार्गदर्शिका है। इस पोस्ट के अनुसार http://leedumond.com/blog/using-a-guid-as-an-entitykey-in-entity-framework-4/ ईएफ 4 इसका समर्थन करता है लेकिन edmx मैपिंग के साथ। EF4 कोड का उपयोग करते समय सर्वर द्वारा उत्पन्न मार्गदर्शिका का उपयोग करने का कोई तरीका है और यदि हां कैसे?एंटिटी फ्रेमवर्क कोड का उपयोग करते समय एक कुंजी के रूप में SQL सर्वर अनुक्रमिक मार्गदर्शिका पहले
5
A
उत्तर
10
हां, आपको अपनी मुख्य संपत्ति को मानचित्र बनाना होगा।
public class MyEntity
{
public virtual Guid Key { get; set; }
...
}
तो फिर तुम जैसे DbContext
व्युत्पन्न वर्ग परिभाषित कर सकते हैं:
public class Context : DbContext
{
public DbSet<MyEntity> MyEntities { get; private set; }
public Context()
: base("connection")
{
MyEntities = Set<MyEntity>();
}
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
base.OnModelCreating(modelBuilder);
modelBuilder.Entity<MyEntity>().HasKey(e => e.Key);
modelBuilder.Entity<MyEntity>()
.Property(e => e.Key)
.HasDatabaseGeneratedOption(DatabaseGenerationOption.Identity);
// Other mapping
}
}
या आप बस डाटा एनोटेशन के साथ अपने इकाई को परिभाषित कर सकते हैं:
public class MyEntity
{
[Key, DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public virtual Guid Key { get; set; }
...
}
मान लेते हैं तो आप एक इकाई है की तरह करते हैं संपादित करें:
यह काम करता है यदि मैपिंग मौजूदा डेटाबेस के साथ प्रयोग किया जाता है लेकिन यदि आप ईएफ कोड-पहले चाहते हैं तो आपके लिए डेटाबेस बनाने के लिए यह सामान्य (अनुक्रमिक नहीं) guids का उपयोग करेगा! डेटाबेस पीढ़ी के मामले में संभावित समाधान के लिए Check this question।