2012-01-25 23 views
7

बनाएं मैं एक सदस्यता डेटाबेस (यह 11 टेबल का उत्पादन)MVC4 सदस्यता डाटाबेस

लेकिन, मेरा MVC4 परियोजना VS2010 में सिर्फ छह तालिकाओं (अनुप्रयोग, सदस्यता, प्रोफाइल के साथ एक सदस्यता डाटाबेस बनाया बनाने के लिए aspnet_regsql.exe से परिचित हूँ, भूमिकाएं, उपयोगकर्ता & उपयोगकर्ताइनरोल)

मैं इस (नई?) स्कीमा के साथ डेटाबेस कैसे बना सकता हूं?

+0

क्या आप पूछ रहे हैं कि क्या आप नए एमवीसी 4/एएसपी.Net 4.5 छः-टेबल डीबी स्कीमा का उपयोग कर प्री-एमवीसी 4 एप्लीकेशन बना सकते हैं? –

+1

ठीक है, एमवीसी 4 में प्रदाता समान नहीं हैं, एमवीसी 4 नए प्रदाताओं को प्रस्तुत करता है - nuget.org/packages/System.Web.Providers। सभी मदद – LenPopLilly

उत्तर

2

aspnet_regsql.exe एएसपी.Net आर्किटेक्चर का एक हिस्सा है, एमवीसी नहीं।

मेरी शर्त यह है कि एमवीसी 4 डेवलपर पूर्वावलोकन अपनी परियोजना संरचना में कुछ कस्टम स्कीमा स्क्रिप्ट के साथ आता है, या इसमें नए एएसपी.Net 4.5 संस्करण aspnet_regsql.exe स्थापित का पूर्वावलोकन संस्करण है।

यदि बाद में सत्य है, तो आप शायद डेटाबेस बनाने के लिए इसका उपयोग कर सकते हैं, और इसे अपने एमवीसी 3 (और पूर्व) अनुप्रयोगों में जोड़ सकते हैं। यहां निहितार्थ स्कीमा मतभेदों के कारण हैं, आपको संभवतः अपने स्वयं के प्रदाता लिखने की आवश्यकता होगी।

एक और विकल्प आपके एमवीसी 4 टेम्पलेट के साथ डेटाबेस बनाना, प्रोजेक्ट को हटाना होगा, और डेटाबेस का उपयोग करने वाली आपके एमवीसी 3 प्रोजेक्ट में डीए परत को कोड करना होगा। आपको बस पकड़ने की आवश्यकता होगी कनेक्शन स्ट्रिंग है। लेकिन फिर, आपको अपने स्वयं के प्रदाताओं को रोल करना होगा क्योंकि पुराने लोगों को नई 6-टेबल स्कीमा नहीं पता होगा।

+2

धन्यवाद । लेकिन मैं चारों ओर घूम रहा था और पता चला कि प्रदाता वास्तव में एमवीसी 4 में अलग हैं। वैसे भी मदद के लिए धन्यवाद – LenPopLilly

+1

आपका स्वागत है। और हाँ, एएसपी.Net 4.5 में नए प्रदाता और नई डीबी स्कीमा होगी। व्यक्तिगत रूप से, मैं अपनी सभी सदस्यता सामग्री का उपयोग करने के बजाय अपना खुद का रोल करना पसंद करता हूं। यह कभी-कभी एक फैटी स्टेक की तरह है। ;) –

+0

@ लिलीपॉप - क्या मैंने आपके प्रश्न का उत्तर पर्याप्त रूप से दिया? –

2

आप को स्थापित करने से सुविधाओं के लिए कुछ तर्क जोड़ने के लिए: http://msdn.microsoft.com/en-us/library/ms229862(v=vs.80).aspx

आप एक जादूगर है कि स्थापना के बारे में बताएंगे को चलाने के लिए किसी भी कमांड लाइन तर्क के बिना aspnet_regsql.exe चला सकते हैं।

कौन सी टेबल गुम हैं और कौन सी टेबल बनाई गई थीं?

+0

के लिए धन्यवाद, जबकि यह लगभग सही जवाब है (मैंने केवल उसी छः टेबल बनाने के लिए कमांड लाइन विकल्प का उपयोग करके इसे आजमाया है), वीएस -2010 एमवीसी 4 थोड़ा अलग संरचना के साथ टेबल बना रहा है (उदाहरण के लिए कोई सदस्यता/मोबाइलपिन नहीं है एमवीसी डीबी स्कीमा में) तो मुझे लगता है कि उन्होंने इसे एक और तरीका बनाया होगा ?? – LenPopLilly

+0

मुझे लगता है कि आपको इस लेख पर एक नज़र रखना चाहिए: http://computerscribe.com/blogs/blogPost?id=11 –

+0

ग्रेट आलेख धन्यवाद, मैं अब और बहुत कुछ समझता हूं।मैंने एसक्यूएल सर्वर मैनेजमेंट स्टूडियो में लेख (सामान्य, सदस्यता और भूमिकाओं) में उल्लिखित संकेतों को लोड किया है, लेकिन वे जिन टेबलों का उत्पादन करते हैं उन्हें एस्पनेट_Membership नाम दिया जाता है, यह समस्या है, क्योंकि जब आप इंटरनेट ऐप टेम्पलेट का उपयोग करते हैं तो एमवीसी 4 द्वारा निर्मित टेबल नाम सदस्यता, भूमिकाएं (aspnet_ भाग के बिना) एमवीसी 4 कुछ अलग कर रहा है ... – LenPopLilly

4

तुम सब करने की ज़रूरत है:

अपने web.config कनेक्शन को इंगित करने के परिवर्तन आप चाहते हैं

<add name="DefaultConnection" connectionString="uid=****;pwd=*****;server=(local);database=****" providerName="System.Data.SqlClient" /> 

सत्यापित करें फिल्टर \ InitializeSimpleMembershipAttribute.cs

लाइन 41 पढ़ना चाहिए:

WebSecurity.InitializeDatabaseConnection("DefaultConnection", "UserProfile", "UserId", "UserName", autoCreateTables: true); 

ध्यान दें कि autoCreateTables सेट है ओ सच है और web.config में आपके द्वारा सेट किए गए कनेक्शन का नाम सेट है।

अब जब कोई उपयोगकर्ता पंजीकृत करता है तो यह आपके द्वारा सेट किए गए डेटाबेस को देखेगा। यदि टेबल मौजूद नहीं हैं तो भी वे बनाए जाएंगे।

+0

उत्कृष्ट !!! यह सब क्या चाहते हैं – iamCR