2012-04-03 23 views
8

में datetime? .Value.TimeOfDay का उपयोग करते हुए मैं ASP.NET MVC 3.LINQ क्वेरी

मैं एक मॉडल है पर LINQ के साथ एक क्वेरी करने के लिए कोशिश कर रहा हूँ, चलो यह घटना कहते हैं। इस इवेंट ऑब्जेक्ट में डेटटाइम की डेट प्रॉपर्टी है? मैं जो चाहता हूं वह उन घटनाओं को लाने के लिए है जो 2 टाइमस्पैन के बीच हैं।

अभी मेरी कोड की तरह दिखता है निम्नलिखित:

TimeSpan From = new TimeSpan(8,0,0); 
TimeSpan Until = new TimeSpan(22,0,0); 

var events = 
    from e in db.Events 
    where e.Date.Value.TimeOfDay >= From, 
      e.Date.Value.TimeOfDay <= Until 
    select e; 

एक अपवाद उत्पन्न कर रहा है, मुझे बता कि "निर्दिष्ट प्रकार सदस्य 'TimeOfDay' संस्थाओं के लिए LINQ में समर्थित नहीं है।"

मुझे इस समस्या के आसपास कोई रास्ता नहीं मिलता है, और मैं पूरे दिन कोशिश कर रहा हूं। कृपया मेरी मदद करो, मैं बहुत निराश हूँ। :(

संपादित करें:।।

मैं, यहाँ "TimeOfDay" वैसे लिखने के बाद e.Date.Value भूल मैं अपने कोड में किया था

मैं दिनांक समय उपयोग नहीं कर सकते, क्योंकि मैं करने के लिए है फिल्टर घटनाक्रम कि दिन के कुछ समय के बीच होते हैं, घटना की तारीख के बावजूद।

+1

आपका नमूना कोड 'टाइमऑफडे' का भी उपयोग नहीं करता है - मुझे लगता है कि यह वास्तव में 'दिनांक' (आपके कोड के अनुसार) का उपयोग करने के बजाय करता है? –

+1

घटनाओं को फ़िल्टर करने के लिए आप दो डेटटाइम ऑब्जेक्ट्स के बजाय दो टाइमस्पेन ऑब्जेक्ट्स का उपयोग क्यों कर रहे हैं? – Steven

उत्तर

13

Date and Time Canonical Functions for LINQ-to-Entities का प्रयोग करें। विशेष रूप से,

CreateTime(hour, minute, second) 

को देखने के आप की जरूरत है एक कैनोलिक फ़ंक्शन को कॉल करने में सहायता करें, How To: Call Canonical Functions देखें।

+0

यह ट्रैक पर प्रतीत होता है, मुझे कैननिकल कार्यों के बारे में पता नहीं था। धन्यवाद! लेकिन, मैं इनका उपयोग करके डेटटाइम को समय में कैसे परिवर्तित कर सकता हूं? – Umagon

+0

@ उमगोन: 'डेटाटाइम' का उपयोग करें। आपका ',' टाइमटाइम। मिनट 'और' डेटाटाइम। दूसरा '। – jason

+1

हे भगवान! यह मेरी समस्या हल हो गया! मुझे लगता है कि मैं तुमसे प्यार करता हूँ, एलओएल। आपका बहुत बहुत धन्यवाद! : डी – Umagon