2011-01-17 7 views
39

मैं कोडफर्स्टEF4 में तालिका | कॉलम नाम के लिए एक अलग नाम निर्दिष्ट करें

public class People : DbContext 
{ 
    public DbSet<Human> Humans { get; set; } 
    public DbSet<Child> Children { get; set; } 
} 

के साथ ईएफ 4 का उपयोग कर रहा हूं इस समय, ईएफ Human तालिका के लिए डेटाबेस में दिखता है। इसके बजाय Humans को देखने के लिए मैं इसके लिए कैसे निर्दिष्ट कर सकता हूं?

उत्तर

60

आप Human वर्ग पर तालिका नाम बदल सकते हैं:

modelBuilder.Entity<Human>() 
    .ToTable("Humans"); 

Similary आप ColumnAttribute या HasColumnName विधि का उपयोग स्तंभ का नाम बदलने के लिए कर सकते हैं:

[Table("Humans")] 
public class Human 
{ 
    ... 
} 

अन्य तरह से सुविज्ञ एपीआई का उपयोग करने के लिए है।

+0

बहुत उपयोगी! मैं प्रत्येक प्रवासन निर्माण पर मैन्युअल रूप से इन्हें ठीक कर रहा था। –

+1

मैं सिर्फ यह ध्यान रखना चाहता हूं कि मॉडल बिल्डिंग केवल डीबीकॉन्टेक्स्ट-व्युत्पन्न कक्षा के पहले उदाहरण के लिए किया जाता है। फिर यह भविष्य के उदाहरणों के लिए कैश किया गया है। तो 'MyDbContext.OnModelCreating()' (जहां फ़्लुएंट संदर्भ कॉन्फ़िगरेशन आमतौर पर होता है) केवल आपके ऐप में ही कहा जाता है। - यह डीबीकॉन्टेक्स्ट के प्रत्येक उदाहरण के लिए वास्तव में गतिशील तालिका नाम होने से रोकता है। - मैं इसे लिख रहा हूं क्योंकि मुझे कड़ी मेहनत मिली। किसी के लिए कुछ सिरदर्द बचा सकता है :) – Riva

संबंधित मुद्दे