खोज…


गतिशील रूप से मॉडल में इंटरफेस जोड़ना

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

निम्न उदाहरण दिखाएगा कि विशिष्ट कॉलम नाम वाले वर्गों पर स्वचालित रूप से इंटरफ़ेस कैसे जोड़ा जाता है:

अपने मॉडल में .tt फ़ाइल को निम्नलिखित तरीके से EntityClassOpening विधि में संशोधित करें, यह उन संस्थाओं पर IPolicyNumber इंटरफ़ेस IPolicyNumber जिनमें POLICY_NO कॉलम है, और IUniqueId पर UNIQUE_ID

public string EntityClassOpening(EntityType entity)
{
    var stringsToMatch = new Dictionary<string,string> { { "POLICY_NO", "IPolicyNumber" }, { "UNIQUE_ID", "IUniqueId" } };
    return string.Format(
        CultureInfo.InvariantCulture,
        "{0} {1}partial class {2}{3}{4}",
        Accessibility.ForType(entity),
        _code.SpaceAfter(_code.AbstractOption(entity)),
        _code.Escape(entity),
        _code.StringBefore(" : ", _typeMapper.GetTypeName(entity.BaseType)),
        stringsToMatch.Any(o => entity.Properties.Any(n => n.Name == o.Key)) ? " : " + string.Join(", ", stringsToMatch.Join(entity.Properties, l => l.Key, r => r.Name, (l,r) =>  l.Value)) : string.Empty);
}

यह एक विशिष्ट मामला है लेकिन यह .tt टेम्पलेट्स को संशोधित करने में सक्षम होने की शक्ति दिखाता है।

एंटिटी क्लासेस में XML डॉक्युमेंटेशन जोड़ना

प्रत्येक उत्पन्न मॉडल कक्षाओं पर डिफ़ॉल्ट रूप से कोई दस्तावेजी टिप्पणी नहीं जोड़ी जाती है। आप हर उत्पन्न इकाई वर्गों के लिए एक्सएमएल प्रलेखन टिप्पणियों का उपयोग करना चाहते हैं, इस भाग के अंदर [modelname] .tt (वर्तमान edmx फ़ाइल नाम modelname है) लगता है:

foreach (var entity in typeMapper.GetItemsToGenerate<EntityType>(itemCollection))
{
    fileManager.StartNewFile(entity.Name + ".cs");
    BeginNamespace(code); // used to write model namespace
#>
<#=codeStringGenerator.UsingDirectives(inHeader: false)#> 

नीचे दिए उदाहरण में दिखाए गए अनुसार UsingDirectives करने से पहले आप XML प्रलेखन टिप्पणियाँ जोड़ सकते हैं:

foreach (var entity in typeMapper.GetItemsToGenerate<EntityType>(itemCollection))
{
    fileManager.StartNewFile(entity.Name + ".cs");
    BeginNamespace(code);
#>
/// <summary>
/// <#=entity.Name#> model entity class.
/// </summary>
<#=codeStringGenerator.UsingDirectives(inHeader: false)#> 

उत्पन्न प्रलेखन टिप्पणी में नीचे दिए गए अनुसार इकाई का नाम शामिल होना चाहिए।

/// <summary>
/// Example model entity class.
/// </summary>
public partial class Example
{
    // model contents
}


Modified text is an extract of the original Stack Overflow Documentation
के तहत लाइसेंस प्राप्त है CC BY-SA 3.0
से संबद्ध नहीं है Stack Overflow