2010-06-21 9 views
6

मैं इकाई की रूपरेखा का उपयोग कर रहा 4.0इकाई की रूपरेखा 4.0 उपयोग डेटाबेस डिफ़ॉल्ट मान

हमारे तालिकाओं में से कई एक स्तंभ RowID कहा जाता है, सामान ट्रैक करने के लिए डीबीए द्वारा प्रयोग किया जाता है। कॉलम गैर नब्बल के पास एक डेटाबेस डिफ़ॉल्ट मान है जो किसी फ़ंक्शन पर मैप करता है।

समस्या यह है कि ईडीएमएक्स मॉडल को इस संपत्ति को इकाई पर मूल्य रखने की आवश्यकता होती है, जिससे वस्तु का निर्माण मुश्किल हो जाता है।

मैंने इस काम को करने के लिए मैन्युअल रूप से ईडीएमएक्स और एसएसडीएल फ़ाइलों को ट्वीव करने पर कई पोस्ट पढ़ी हैं। यह हमारी टीम के लिए व्यवहार्य नहीं है।

क्या इस समस्या का कोई बेहतर समाधान डेटाबेस के कॉलम के अलावा अन्य है? मुझे मूल्य वापस पाने की परवाह नहीं है, मैं बस डेटाबेस को इसे अपने आप सेट करने में सक्षम होना चाहता हूं।

उत्तर

2

यदि RowID को आपके आवेदन के संदर्भ में कभी भी पढ़ने या लिखे जाने की आवश्यकता नहीं है तो यह आपके एंटिटी मॉडल में बिल्कुल नहीं है। बस डिज़ाइनर (राइट क्लिक> हटाएं) का उपयोग करके इसे अपने एंटिटी मॉडल से हटा दें और डेटाबेस को प्रबंधित करने दें।

+0

समस्या RowID अन्य टेबल पर एक FK है है, इसलिए मैं इसे पाने और इसका इस्तेमाल करते हैं जब बच्चे संस्थाओं बनाने के लिए सक्षम होना चाहिए। – ctorx

6

आपको एसएसडीएल (मॉडल के पीछे एक्सएमएल) में StoreGeneratedPattern = "computed" सेट करना चाहिए।

1 - सही मॉडल क्लिक

2 - का चयन करें "ओपन के साथ" => Xml संपादक

3 - मॉडल सामग्री अनुभाग में टेबल्स में से एक की मैपिंग के लिए देखो

4 - RowID स्तंभ

से 5 StoreGeneratedPattern = "परिकलित" विशेषता जोड़ें - एक वैश्विक अपनी फ़ाइल पर की जगह तो हर तालिका StoreGeneratedPattern = "परिकलित"

साथ RowID परिभाषा होगा करो

नोट: यदि आप अद्यतन मॉडल विज़ार्ड का उपयोग करते हैं तो आपको XML को मैन्युअल रूप से अपडेट करने की आवश्यकता होगी। मेरी सिफारिश: विज़ार्ड का उपयोग न करें या मूल और बदली गई एक्सएमएल लाइनों को एक अलग पाठ फ़ाइल में सहेजें ताकि आप उन्हें विज़ार्ड चलाने के बाद वैश्विक प्रतिस्थापन के लिए उपलब्ध करा सकें।

अधिक जानकारी के लिए यह लेख पढ़ें: http://msdn.microsoft.com/en-us/library/dd296755(v=vs.90).aspx

+1

मैं एंटिटी फ्रेमवर्क 5 का उपयोग कर रहा हूं, और जब मैं StoreGeneratedPattern = Computed सेट करता हूं और फिर "डेटाबेस से मॉडल अपडेट करें ..." विज़ार्ड का उपयोग करता हूं, तो फ़ील्ड * रीसेट नहीं होता है। – DaveD

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