मैं इकाई फ्रेमवर्क 6 का उपयोग कर रहा हूं, और मैं अपने टी 4 टेम्पलेट में निम्नलिखित परिवर्तन करके इस समस्या को हल करने में सक्षम था।
मैं निम्नलिखित लाइन जहां यह नेविगेशन गुण पैदा करता है से
navProp.ToEndMember.RelationshipMultiplicity == RelationshipMultiplicity.Many ? ("ICollection<" + endType + ">") : endType,
को
navProp.ToEndMember.RelationshipMultiplicity == RelationshipMultiplicity.Many ? ("List<" + endType + ">") : endType,
तब मैं कोड है कि में नेविगेशन संपत्ति सेट बदल एक संग्रह के बजाय एक सूची का उपयोग करने के लिए बदल डिफॉल्ट हैशसेट को कॉल करने के लिए एक सूची में कनवर्ट करने के लिए कन्स्ट्रक्टर। टोलिस्ट()। इस लाइन
this.<#=code.Escape(navigationProperty)#> = new HashSet<<#=typeMapper.GetTypeName(navigationProperty.ToEndMember.GetEntityType())#>>();
this.<#=code.Escape(navigationProperty)#> = new HashSet<<#=typeMapper.GetTypeName(navigationProperty.ToEndMember.GetEntityType())#>>().ToList();
में बदल गया था HashSet <> .ToList() विधि, एक विस्तार है ताकि विस्तार विधि उपलब्ध बनाने के लिए में ऐसा है, तो मैं एक का उपयोग कर System.Linq बयान जोड़ा UsingDirectives विधि को संशोधित करके:
public string UsingDirectives(bool inHeader, bool includeCollections = true)
{
return inHeader == string.IsNullOrEmpty(_code.VsNamespaceSuggestion())
? string.Format(
CultureInfo.InvariantCulture,
"{0}using System;{1}" + Environment.NewLine +
"{0}using System.Linq;" +
"{2}",
inHeader ? Environment.NewLine : "",
includeCollections ? (Environment.NewLine + "using System.Collections.Generic;") : "",
inHeader ? "" : Environment.NewLine,
Environment.NewLine)
: "";
}
स्रोत
2014-12-10 21:14:57
अपने सदस्य चर प्रकार '' ICollection' problems' का कोई अंत नहीं का कारण बनता है तो क्यों आप यह कुछ है कि संभाला नहीं जा सकता के रूप में परिभाषित किया है की है? यानी इसे 'IList' के रूप में परिभाषित क्यों न करें यदि आपकी इच्छा पूरी हो। शायद डाउनस्ट्रीम – wal
का कारण बनने वाले मुद्दों पर विस्तृत करें क्योंकि पीओसीओ टी 4 टेम्पलेट्स आईसीओलेक्शन निर्दिष्ट करते हैं - मैं हाथ से पीओसीओ नहीं लिख रहा हूं। एक अंतरिम उपाय के रूप में मैंने टी 4 टेम्पलेट्स को हैशसेट बनाने के लिए संशोधित किया है, जो ठीक काम करता है, लेकिन ऐसा लगता है कि निर्दिष्ट निर्दिष्ट जेनेरिक/इंटरफ़ेस प्रकार को deserializing करते समय उन्हें किस ठोस प्रकार का उपयोग करना है, यह निर्दिष्ट करने के लिए एक तरीका होना चाहिए। –