का उपयोग करते समय समस्याएं मुझे एक एनक प्रकार पर चलने पर LINQ क्वेरी पर ऑर्डरबी एक्सटेंशन विधि का उपयोग करने में कुछ समस्याएं आ रही हैं। मैंने डिज़ाइनर पर सबकुछ खींचकर और छोड़कर दृश्य स्टूडियो का उपयोग करके नियमित डेटाकॉन्टेक्स्ट बनाया है। मैंने तब अलग इकाई मॉडल बनाए हैं, जो कि बस पीओसीओ हैं, और मैंने अपने डेटाबेस से डेटा लाने के लिए एक रिपोजिटरी पैटर्न का उपयोग किया है और उन्हें अपने स्वयं के इकाई मॉडल में मैप किया है (या बल्कि, मेरे पास एक रिपोजिटरी पैटर्न है, जो बनाता है और IQueryable यह सब कुछ करेगा)।लिंक टू एसक्यूएल ऑर्डरबी, एनम्स
सबकुछ ठीक काम करता है, सिवाय जब मैं एक ऐसी संपत्ति पर ऑर्डरबी (भंडार के बाहर) को लागू करने का प्रयास करता हूं जिसे मैंने लघु/छोटे से एनम तक मैप किया है।
public class Campaign
{
public long Id { get; set; }
public string Name { get; set; }
....
public CampaignStatus Status { get; set; }
...
}
public enum CampaignStatus : short {
Active,
Inactive,
Todo,
Hidden
}
public class SqlCampaignRepository : ICampaignRepository
{
...
public IQueryable<Campaign> Campaigns()
{
DataContext db = new DataContext();
return from c in db.Campaigns
select new Campaign
{
Id = c.Id,
Name = c.Name,
...
Status = (CampaignStatus)c.Status,
...
};
}
}
और फिर कहीं और
SqlCampaignRepository rep = new SqlCampaignRepository();
var query = rep.Campaigns().OrderBy(c => c.Status);
यह निम्नलिखित अपवाद चलाता है:
यहाँ प्रासंगिक कोड बिट्स हैं System.ArgumentException उपयोगकर्ता कोड से बिना क्रिया था संदेश = "तर्क ' मूल्य 'गलत प्रकार था। अपेक्षित' IQMedia.Models.CampaignType '। वास्तविक' System.Int16 '। " स्रोत = "System.Data.Linq" StackTrace: वेद System.Data.Linq.SqlClient.SqlOrderExpression.set_Expression (SqlExpression मूल्य) वेद System.Data.Linq.SqlClient.SqlBinder.Visitor.VisitSelect (चयन SqlSelect) वेद System.Data.Linq.SqlClient.SqlVisitor.Visit (SqlNode नोड) वेद System.Data.Linq.SqlClient.SqlBinder.Visitor.VisitIncludeScope (SqlIncludeScope गुंजाइश) ...
(वहाँ में डेनिश बारे में खेद , ved = द्वारा/पर)।
मैंने ऑर्डर में कम करने के लिए स्थिति को टाइपकास्टिंग करने का प्रयास किया है, लेकिन यह मदद नहीं करता है, अगर मैं इसे वास्तविक enum प्रकार में भी डालता हूं।
इस पर फ़िक्सिंग करने में कोई भी सहायता बहुत सराहना की जाती है!