2014-10-16 6 views
6

द्वारा उपयोग किए जाने वाले तालिका का नाम निर्दिष्ट करने के लिए यह my earlier question से एक फ़ॉलोबैक प्रश्न है। मैं इस धारणा के तहत था कि यदि डेटाबेस में एक से अधिक तालिकाएं हैं, तो DbSet चर का नाम तालिका की पहचान करने के लिए उपयोग किया जाएगा।DbContext

हालांकि जुड़ा हुआ प्रश्न में यह स्पष्ट है कि DbContextProducts बजाय मेज Portfolio तालिका भले ही वैरिएबल का नाम Portfolio था चुनने गया था। मैं अभी भी परिवर्तनीय नाम को कुछ भी बदल सकता हूं और मुझे अभी भी डेटा मिल रहा है।

तो मेरा सवाल यह है कि टेबल DbContext द्वारा मैप किए जाते हैं? मुझे प्रोजेक्ट में कुछ और टेबल जोड़ने की ज़रूरत है और मुझे पता नहीं है कि मैं एक DbContext ऑब्जेक्ट का उपयोग करके कैसे करूं (या क्या मुझे एक ही डेटाबेस में अलग-अलग टेबल्स के लिए अलग DbContext का उपयोग करना चाहिए)?

+0

यदि आप पोर्टफोलियो तालिका चाहते थे, तो डीबीएसईटी 'के बजाय आपका डीबीएससेट' डीबीसेट 'क्यों टाइप किया गया है? यह _entity type_ है जिसका उपयोग टेबल नाम निर्धारित करने के लिए किया जाता है, न कि परिवर्तनीय नाम। –

+0

@ChrisDunaway यह मेरे अंत में एक गलतफहमी थी। मैं उत्सुक था कि टेबल के मैपिंग कैसे किए जाते हैं। उत्तरों ने स्पष्टीकरण प्रदान किया। – noob

उत्तर

10

आप इकाई पर निम्न कर सकते हैं:

[Table("Portfolio")] 
public class Product { /* ... */ } 

परंपरा के मुताबिक तालिका संस्थाओं नाम का बहुवचन के नाम पर है।
तो DbSet<Product> डिफ़ॉल्ट रूप से Products नाम की एक तालिका में संग्रहीत/देखा जाएगा।

+0

स्पष्टीकरण के लिए फिर से धन्यवाद! – noob

+0

और प्रत्येक इकाई को अपने टेबल नाम से चिह्नित करने की आवश्यकता के बिना इस डिफ़ॉल्ट "बहुवचन" को कैसे हटाया जाए? – FindOutIslamNow

+0

@FindOutIslamNow: http://stackoverflow.com/questions/4796543/how-do-i-singularize-my-tables-in-ef-code- फर्स्ट - लेकिन मेरे 2 सेंट देने के लिए: एक टेबल स्टोर के रूप में उदा। एक से अधिक उत्पाद एक सिंगलर नाम गलत आईएमओ है; -) ... – ChrFin

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