संपत्ति टाइमऑफडे LINQ से इकाइयों में समर्थित नहीं है, इसलिए आप इसके बजाय SqlFunctions.DatePart विधि का उपयोग करने का प्रयास कर सकते हैं।
आपको शायद अपने टाइमस्पेन्स को डेटटाइम्स में भी परिवर्तित करना चाहिए।
मुझे लगता है कि यह काम करना चाहिए (timespans संभालने दिन की शुरुआत से है):
var now = DateTime.Now;
var today = new DateTime(now.Year, now.Month, now.Day);
var endDateTime = today + endTime;
var startDateTime = today + startTime
var timeCapturesQuery = Context.TimeCaptures.Where(t =>
SqlFunctions.DatePart("timeofday", t.StartDateTime) < SqlFunctions.DatePart("timeofday", endDateTime)
&& SqlFunctions.DatePart("timeofday", t.EndDateTime) > SqlFunctions.DatePart("timeofday", startDateTime));
संपादित
टिप्पणियां विशिष्ट संपत्ति TimeOfTheDay DatePart विधि में समर्थित नहीं है में उल्लेख किया ।
शायद EntityFunctions.DiffNanoseconds विधि काम करेगा:
var now = DateTime.Now;
var today = new DateTime(now.Year, now.Month, now.Day);
var endDateTime = today + endTime;
var startDateTime = today + startTime
var timeCapturesQuery = Context.TimeCaptures.Where(t =>
EntityFunctions.DiffNanoseconds(t.StartDateTime, endDateTime).Value < 0
&& EntityFunctions.DiffNanoseconds(t.EndDateTime, startDateTime).Value > 0);
EDIT2
एक अन्य विकल्प जो बहुत सरल है और मुझे लगता है कि सिर्फ datetimes तुलना करने के लिए किया जाता है काम करेंगे।
हमने पहले से ही टाइमस्पेन्स को डेटटाइम में परिवर्तित कर दिया है और हम LINQ से इकाइयों का उपयोग करके एक साधारण स्थिति बना सकते हैं और इसे काम करना चाहिए क्योंकि हम किसी भी दिनांक-समय गुणों का उपयोग नहीं कर रहे हैं।
var now = DateTime.Now;
var today = new DateTime(now.Year, now.Month, now.Day);
var endDateTime = today + endTime;
var startDateTime = today + startTime
var timeCapturesQuery = Context.TimeCaptures.Where(t => t.StartDateTime < endDateTime && t.EndDateTime > startDateTime);
क्षमा करें, लेकिन मैं नहीं दिख रहा है कि कैसे मदद कर सकता है। आप डेटटाइम को स्ट्रिंग में कनवर्ट कर रहे हैं, फिर डेटटाइम पर वापस उस संपत्ति को कॉल कर रहे हैं जो त्रुटि को फेंकता है। यह भी याद रखें कि StartDateTime एक तालिका पर एक स्तंभ है, पैरामीटर नहीं। –
पौलुस ने क्या कहा [http://stackoverflow.com/questions/32756662/timeofday-is-not-supported-in-linq-to-entities-find-total-seconds-in-linq-2) काम कर सकता है। – Berkay
इस बारे में [समाधान] (http://stackoverflow.com/a/21289257/5460854) – CodeMaster