2010-03-22 17 views
24

मैं वर्तमान में सी # और LINQ सीख रहा हूं। मेरे पास उनके बारे में बहुत सारे प्रश्न हैं। असल में, मुझे चरण-दर-चरण ट्यूटोरियल की आवश्यकता है।सी # डीबीएमएल फ़ाइल कहां से आती है?

  1. मुझे लगता है कि dbml फ़ाइल डेटाबेस की कॉन्फ़िगरेशन फ़ाइल है। यदि मैं dbml फ़ाइल डबल क्लिक करता हूं तो VS इसे डिज़ाइन आरेख में खोल देगा। क्या मैं यहां टेबल बना/हटा/संशोधित कर सकता हूं? dbml फ़ाइल प्राप्त करने के लिए LINQ to SQL Classes जोड़ने के लिए मैं add new item का उपयोग कर सकता हूं?

  2. अगला क्या है? डेटाबेस में टेबल जेनरेट करें? एसक्यूएल स्क्रिप्ट जेनरेट करें? सीएस फाइलें उत्पन्न करें? कब? कैसे?

उत्तर

24

डीबीएमएल फ़ाइल डेटाबेस सर्वर से बिल्कुल संबंधित नहीं है। यह पूरी तरह से ग्राहक पक्ष की बात है। यह अनिवार्य रूप से डेटाबेस में आपकी तालिकाओं के बारे में जानकारी का एक सेट है और आप उन्हें .NET ऑब्जेक्ट्स पर मैप करने जा रहे हैं।

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

आंतरिक रूप से, डीबीएमएल फ़ाइल केवल एक एक्सएमएल फ़ाइल है जिसे विजुअल स्टूडियो द्वारा एक कस्टम टूल में खिलाया जाता है और .cs उत्पन्न करता है जो आपके डेटाबेस के लिए LINQ ऑब्जेक्ट मॉडल का प्रतिनिधित्व करता है।

+0

.cs फ़ाइल निर्माण के लिए dbml फ़ाइल को बाईपास करने का कोई तरीका है? मेरे सहकर्मी के पास यह आदेश है: वर्गमीटर/सर्वर: dwasilew \ sqlexpress/डेटाबेस: Ande /code:Ande.cs मुझे लगता है कि Ande.cs फ़ाइल इस कमांड में बनाई गई है। कोई डीडीएमएल उल्लेख नहीं है। – 5YrsLaterDBA

+0

@ 5Yrs: 'SQLMetal' वह टूल है जो (1) डेटाबेस से 'dbml' उत्पन्न कर सकता है (2)' dbml' (3) से कोड उत्पन्न कर सकता है, दो डेटाबेस और आउटपुट स्रोत फ़ाइल को डेटाबेस से सीधे व्यवस्थित कर सकता है । विजुअल स्टूडियो अनिवार्य रूप से एक ही चीज जीयूआई के साथ करता है। आप यहां SQLMetal के लिए अलग-अलग कमांड लाइन तर्क देख सकते हैं: http://msdn.microsoft.com/en-us/library/bb386987.aspx –

3

डीबीएमएल फ़ाइल मैपिंग है जो आपके डेटाबेस स्कीमा के आधार पर आपकी कक्षाओं को परिभाषित करती है। हां, यह आपकी (डिफ़ॉल्ट) कनेक्शन स्ट्रिंग को परिभाषित करता है, लेकिन यह आपके डेटाबेस को "कॉन्फ़िगर" नहीं करता है।

लिंक से एसक्यूएल डेटाबेस-प्रथम दृष्टिकोण का उपयोग करता है जहां आपके पास डेटाबेस है और डीबी स्कीमा के बाद आपके वर्गों का मॉडल करता है। & पर टेबल को छोड़कर खींचकर, आप कक्षाओं के निर्माण को स्वचालित कर देंगे ताकि आपको उन्हें टाइप न करना पड़े। आप वहां से संपत्ति नाम इत्यादि बदल सकते हैं और संपत्ति और उसके सही डेटाबेस कॉलम नाम के बीच मैपिंग बरकरार रहेगी।

2

हां, जब आप SQL कक्षा में एक लिंक जोड़ते हैं तो डीबीएमएल फ़ाइल बनाई जाती है। डिजाइनर में (जब आप डीबीएमएल फ़ाइल को डबल क्लिक करते हैं तो आप क्या देखते हैं) आप टेबल (सर्वर एक्सप्लोरर से) पर खींच सकते हैं। फिर आप इन कोडों को अपने कोड में संदर्भित कर सकते हैं। वहाँ वहाँ बाहर कुछ मिलने लगे ट्यूटोरियल की तुलना में अधिक कर रहे हैं:

चेक इस अतः जानकारी के लिए प्रश्न:

https://stackoverflow.com/questions/481244/can-anyone-recommend-a-good-tutorial-for-learning-linq2sql

+0

लिंक किए गए SO प्रश्न को हटा दिया गया है या स्थानांतरित किया गया है या कुछ ... – Alex

+0

खैर, यह पोस्ट 7 साल पुराना है :-)। लिंक से एसक्यूएल को आज के मानकों से मृत माना जाता है। जब तक आप विरासत कोड के साथ काम नहीं कर रहे हैं, तो मैं एंटी फ्रेमवर्क जैसे कुछ और उपयोग करने पर विचार करूंगा। – HitLikeAHammer

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