पुरानी पोस्ट सोचा कि मैं एंटीटी फ्रेमवर्क 6.1.3 के साथ जो मिला वह साझा करूंगा।
मैंने सी # और .NET Framework 4.6.1 का उपयोग करके एक साधारण डेटा लेयर लाइब्रेरी बनाई, एक साधारण भंडार/सेवा वर्ग, एक कोड प्रथम संदर्भ वर्ग जोड़ा और मेरी वेब.कॉन्फिग फ़ाइल को स्थानीय SQL एक्सप्रेस 2014 डेटाबेस में इंगित किया।
इकाई वर्ग में मैं ईद स्तंभ के लिए निम्न विशेषता निर्माता कहा:
ऐड-प्रवासन:
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public Guid Id { get; set; }
तो मैं 2015 पैकेज प्रबंधक दृश्य स्टूडियो में निम्न लिखकर एक नया माइग्रेशन बनाया
माइग्रेशन को एक नाम दें और फिर डीबीमिग्मेंटेशन क्लास बनने की प्रतीक्षा करें। वर्ग संपादित करें और निम्न createTable आपरेशन जोड़ें:
nullable: false, identity: true
यह एफई बताता स्तंभ specifiy के रूप में nullabe नहीं:
CreateTable(
"dbo.Article",
c => new
{
Id = c.Guid(nullable: false, identity: true),
Title = c.String(),
Content = c.String(),
PublishedDate = c.DateTime(nullable: false),
Author = c.String(),
CreateDate = c.DateTime(nullable: false),
})
.PrimaryKey(t => t.Id);
}
उपरोक्त तालिका एक उदाहरण यहां प्रमुख मुद्दा निम्नलिखित बिल्डर एनोटेशन है और आप इसे ईएफ द्वारा बीजित करने के लिए पहचान कॉलम के रूप में सेट करना चाहते हैं।
निम्न आदेश के साथ फिर से माइग्रेशन चलाएं:
update-database
इस प्रवास वर्ग तालिका (नीचे() विधि) छोड़ने पहले तो तालिका (ऊपर() विधि) बनाने चलेंगे।
अपने यूनिट परीक्षण चलाएं और/या डेटाबेस से कनेक्ट करें और एक चुनिंदा क्वेरी चलाएं, आपको अपनी तालिका को अपने नए रूप में देखना चाहिए, आईडी कॉलम को छोड़कर कुछ डेटा जोड़ें और आपको नया ग्रिड देखना चाहिए (या जो भी डेटा प्रकार आप चुनते हैं) उत्पन्न होना।
मैंने डेटाबेस जेनरेटेडऑप्शन देखा था। इडेंटिटी लेकिन टीबीएच मैं आलसी था और इसमें पढ़ नहीं पाया था, मैंने अभी माना है कि उसने पीके फील्ड को कॉलम बनाया है। धन्यवाद, मैं इसे जाने दूंगा। – JamesStuddart
क्या यह अभी भी बहुसंख्यक डेटाबेस के साथ काम करेगा? – amd
@ अहमद यह काम नहीं करेगा यदि प्रत्येक किरायेदार का अपना बीज – Eranga