2009-11-20 7 views
5

मैं एक LINQ-to-Entities क्वेरी अभिव्यक्ति से सीधे स्वरूपित दिनांक स्ट्रिंग प्राप्त करने का प्रयास कर रहा हूं। । " 'System.Object' LINQ संस्थाओं केवल कास्टिंग इकाई डेटा मॉडल आदिम प्रकार का समर्थन करता है के लिए टाइप करने के लिए प्रकार 'System.Nullable`1' कास्ट करने में असमर्थ:लिंक-टू-एंटिटीज: चयन क्वेरी अभिव्यक्ति में प्रारूप दिनांक

nonBusinessDays = (from ac in db.AdminCalendar 
        where ac.DateTimeValue >= calendarStartDate && ac.DateTimeValue <= calendarEndDate && ac.IsBusinessDay == false 
        select ac.MonthValue + "/" + ac.DayOfMonth + "/" + ac.FullYear).ToList(); 

लेकिन, मुझे folloinw त्रुटि संदेश मिलता है। "

क्या परिणाम सेट के माध्यम से इसे करने के अलावा ऐसा करने का कोई तरीका है? धन्यवाद! अबे

उत्तर

9

मैं एक वैकल्पिक हल मिल गया:

nonBusinessDays = (from dt in 
          (from ac in db.AdminCalendar 
          where ac.DateTimeValue >= calendarStartDate && ac.DateTimeValue <= calendarEndDate && ac.IsBusinessDay == false 
          select ac.DateTimeValue).ToList() 
        select string.Format("{0:M/d/yyyy}", dt)).ToList(); 
+1

आपको हो रही समस्या अपने वैध एसक्यूएल में ToString अनुवाद करने के लिए निष्पादित करने के लिए प्रयास कर रहा है कि है सर्वर पर - और जो इसके बाद विफल रहा है। घोंसले हुए प्रश्नों का मतलब है कि आप अलग कर रहे हैं। ToString जो क्वेरी से नहीं किया जा सकता है और इसलिए यह – Murph

+1

धन्यवाद करता है! अब यह समझ में आता है; LINQ फ़ंक्शन को SQL फ़ंक्शन पर मैप करने का प्रयास कर रहा है, जो अस्तित्व में नहीं है। मेरा कामकाज पहले डेटा को एक सूची में प्राप्त करना था और वहां से सूची को संसाधित करना था। – Abe

+0

आलसी लोडिंग अपराधी है। –

0

ToString उपयोग करने के लिए अपने चयन को बदलने का प्रयास करें:

nonBusinessDays = (from ac in db.AdminCalendar 
        where ac.DateTimeValue >= calendarStartDate && ac.DateTimeValue <= calendarEndDate && ac.IsBusinessDay == false 
        select ac.DateTimeValue.ToString("MM/dd/yyyy")).ToList(); 
+0

दुर्भाग्यवश, आप ToString विधि को या तो नहीं चला सकते हैं; यहां मुझे अपवाद मिला है: LINQ से संस्थाएं 'System.String ToString (System.String)' विधि को पहचान नहीं पाती हैं, और इस विधि को स्टोर अभिव्यक्ति में अनुवादित नहीं किया जा सकता है। – Abe

संबंधित मुद्दे