2014-12-16 5 views
5

मैंने अब तक इकाई फ्रेमवर्क और SQL सर्वर डेटाबेस का उपयोग किया है। तो मैं अपने टेबल नाम को क्लास नाम और संपत्ति नाम के रूप में निम्नलिखित गुणों के रूप में प्रस्तुत कर सकता हूं।खराब तालिका कॉलम से नामकरण सी # कक्षाएं

class Product{ 
     public string Id { get; set;} 
     public string Name { get; set;} 
} 

तालिका और कॉलम नाम मेरी कक्षा के साथ समान हैं।

लेकिन अब मैं एक प्रोजेक्ट काम करूंगा जो Postgresql डेटाबेस का उपयोग करता है। तालिका के नाम और कॉलम नाम इस तरह हैं।

  • टेबल्स products, product_categories (लोअरकेस)
  • कॉलम product_id, product_name, category_id, ....

तो मैं इस तरह वर्ग नामों का उपयोग नहीं करना चाहते हैं:

class products { 
     public string product_id { get; set; } 
     public string product_name { get; set; } 
     public string category_id { get; set; } 
} 

यह दिखता है एक बदसूरत नामकरण सम्मेलन की तरह। कैसे मैं इस मुद्दे को हल कर सकता हूँ?

+0

क्या आप इस तरह के बारे में बात कर रहे हैं: http://stackoverflow.com/questions/2944974/t4-fieldname-in-camelcase-without-underscore –

+0

ईएफ में फ़ील्ड नामों को एनोटेट करने के लिए मेटाडेटा का उपयोग करने की क्षमता है, देखें (https : //entityframework.codeplex.com/wikipage? शीर्षक = कोड% 20 सबसे पहले% 20 नोटेशन) और आप एक पोस्टग्रेस्क्ल प्रदाता का उपयोग ईएफ (http://www.codeproject.com/Articles/783552/Using-PostgreSQL-with-Entity के साथ कर सकते हैं -फ्रेमवर्क-इन-एएसपी-नेट) – Ruskin

उत्तर

6

तालिका और कॉलम विशेषताओं का उपयोग करें। MSDN example से:

[Table("InternalBlogs")] 
public class Blog 
{ 
    [Column("BlogDescription", TypeName="ntext")] 
    public String Description {get;set;} 
} 
+0

क्या यह कोड-पहला दृष्टिकोण नहीं है? मैं अस्पष्ट हूं अगर ओपी के पास इसका विकल्प है। बस पूछ रहा हूँ कि मैं उत्सुक हूँ। टीएनएक्स –

+0

हां, मुझे लगता है कि यह पहले कोड है। ओपी अस्पष्ट था कि वह किस तकनीक का उपयोग कर रहा था। तो यदि ओपी या किसी अन्य समस्या के साथ किसी और को यह प्रश्न है और पहले कोड का उपयोग करना होता है, तो यह उपयोगी होना चाहिए। मैं पहले कोड मान रहा हूं क्योंकि उन्होंने कक्षा को स्वयं लिखा था (जब तक कि यह मॉडल का प्रतिनिधित्व करने का इरादा नहीं था कि ईएफ पहले मॉडल या डीबी के साथ क्या कर रहा था) – mason

0

एक आम दृष्टिकोण आपके डोमेन वर्ग है जो आप मानक सी # सम्मेलनों का उपयोग कर नाम के लिए संस्थाओं को मैप करने के लिए है।

public class Product 
{ 
    public int Id { get; set; } 
    public string Name { get; set; } 
    public int Category { get; set; } 
} 

तो फिर तुम एक नक्शाकार सहायक है कि डोमेन ऑब्जेक्ट के लिए इकाई तब्दील बनाने:

तो इस तालिका product_id, product_name, categori_id, .. पर आप मैप आप तय करने के लिए के लिए

public Product ProductMapper(EntityProduct entity) 
{ 
    return new Product 
    { 
     Id = entity.product_id, 
     Name = entity.product_name, 
     Category = entity.category_id, 
    } 
} 

मैं छोड़ने के लिए कि क्या एक नक्शाकार चाहिए Product कक्षा पर एक स्थिर विधि, एक अलग सहायक वर्ग बनें। साथ ही, जब डेटा को सहेजते हैं तो आप प्रक्रिया को उलट देते हैं, तो आप डोमेन ऑब्जेक्ट को किसी इकाई में मैप करते हैं।

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