Entity Framework
डेटाबेस पहली मॉडल पीढ़ी
खोज…
डेटाबेस से मॉडल बनाना
Visual Studio
में अपने Solution Explorer
फिर Project
पर क्लिक करें, आप मॉडल राइट माउस जोड़ेंगे। ADO.NET Entity Data Model
चुनें
फिर Generate from database
और Next
विंडो में नेक्स्ट पर क्लिक करें New Connection...
क्लिक करें New Connection...
और जिस डेटाबेस से आप मॉडल बनाना चाहते हैं उसे इंगित करें ( MSSQL
, MySQL
या Oracle
)
आपके द्वारा यह क्लिक करने के बाद Test Connection
देखने के लिए कि क्या आपने कनेक्शन ठीक से कॉन्फ़िगर किया है (यदि यह यहां विफल रहता है तो आगे मत जाओ)।
Next
बाद Next
क्लिक करें, जो आप चाहते हैं वे विकल्प चुनें (जैसे इकाई नाम बनाने के लिए शैली या विदेशी कुंजी जोड़ने के लिए)।
Next
फिर से क्लिक करें, इस बिंदु पर आपके पास डेटाबेस से उत्पन्न मॉडल होना चाहिए।
उत्पन्न मॉडल में डेटा एनोटेशन जोड़ना
एंटिटी फ्रेमवर्क 5 और उच्चतर द्वारा उपयोग की जाने वाली टी 4 कोड-पीढ़ी की रणनीति में, डेटा एनोटेशन विशेषताओं को डिफ़ॉल्ट रूप से शामिल नहीं किया गया है। प्रत्येक मॉडल पुनर्जनन के लिए कुछ संपत्ति के शीर्ष पर डेटा एनोटेशन शामिल करने के लिए, .tt
( .tt
एक्सटेंशन) के साथ शामिल टेम्पलेट फ़ाइल खोलें - फिर नीचे दिए गए तरीके के रूप में UsingDirectives
विधि के तहत एक using
कथन जोड़ें:
foreach (var entity in typeMapper.GetItemsToGenerate<EntityType>
(itemCollection))
{
fileManager.StartNewFile(entity.Name + ".cs");
BeginNamespace(code);
#>
<#=codeStringGenerator.UsingDirectives(inHeader: false)#>
using System.ComponentModel.DataAnnotations; // --> add this line
एक उदाहरण के रूप में, मान लें कि टेम्पलेट में KeyAttribute
शामिल होना चाहिए जो प्राथमिक कुंजी गुण इंगित करता है। मॉडल को पुनर्जीवित करते समय KeyAttribute
स्वचालित रूप से सम्मिलित करने के लिए, कोड का भाग codeStringGenerator.Property
जिसमें codeStringGenerator.Property
नीचे दिया गया है:
var simpleProperties = typeMapper.GetSimpleProperties(entity);
if (simpleProperties.Any())
{
foreach (var edmProperty in simpleProperties)
{
#>
<#=codeStringGenerator.Property(edmProperty)#>
<#
}
}
फिर, इस तरह से मुख्य संपत्ति की जांच करने के लिए एक-शर्त डालें:
var simpleProperties = typeMapper.GetSimpleProperties(entity);
if (simpleProperties.Any())
{
foreach (var edmProperty in simpleProperties)
{
if (ef.IsKey(edmProperty)) {
#> [Key]
<# }
#>
<#=codeStringGenerator.Property(edmProperty)#>
<#
}
}
उपरोक्त परिवर्तनों को लागू करने से, डेटाबेस से मॉडल अपडेट करने के बाद सभी उत्पन्न मॉडल कक्षाओं में उनकी प्राथमिक कुंजी संपत्ति पर KeyAttribute
होगी।
इससे पहले
using System;
public class Example
{
public int Id { get; set; }
public string Name { get; set; }
}
उपरांत
using System;
using System.ComponentModel.DataAnnotations;
public class Example
{
[Key]
public int Id { get; set; }
public string Name { get; set; }
}