2013-09-30 8 views
7

के समय जाओ मैं datetime चर officeStartTime जो के रूप मेंकेवल datetime

officeStartTime = {9/24/2013 10:00:00 AM}

datetime मूल्य पकड़ है और मैं मॉड्यूल CHECKINOUT जो userid, checktime और अन्य गुण हो सकते है।

अब मैं चाहता हूं कि CHECKINOUT प्रविष्टियों की सूची प्राप्त करें, जिनकी समय-समय पर चेकटाइम का हिस्सा officeStartTime के समय से अधिक है।

मैं कोशिश:

var checklist= con.CHECKINOUTs.Where(x => x.CHECKTIME.TimeOfDay > officeStartTime.TimeOfDay);

checklist शामिल निम्न त्रुटि दिखाया गया है:

{"The specified type member 'TimeOfDay' is not supported in LINQ to Entities. Only initializers, entity members, and entity navigation properties are supported."}

यह कहता है कि TimeOfDay LINQ से Entities में समर्थित नहीं है, तो यदि मैं LINQ में डेटाटाइम के समय भाग की जांच कैसे कर सकता हूं। ऐसा करने के लिए कोई और रास्ता नहीं है? कृपया मुझे सुझाव दें कि क्या करना है।

धन्यवाद।

+0

यदि उत्तर आपके लिए सहायक था - कृपया इसे ऊपर उठाएं। यदि यह समाधान था - अपवॉट और – MikroDel

+0

अपडेट करें मैंने इस टिप्पणी को पोस्ट किया - आज के कारण - आपके पास 8 उत्तर हैं और उनमें से 0 स्वीकार किए जाते हैं, लेकिन लगभग सभी के पास प्रतिक्रियाएं होती हैं। – MikroDel

+0

@MikroDel मैं आपके उत्तर के अनुसार कोशिश कर रहा हूं, और मैं आपकी प्रतिक्रिया के लिए अपवित्र हूं। – link2jagann

उत्तर

11

उपयोग

CreateTime(hour, minute, second) 

से Date and Time Canonical Functions

+0

धन्यवाद यह काम करता है। – link2jagann

+0

@ link2jagann - अगर यह काम करता है - कृपया जवाब भी स्वीकार करें! =) – MikroDel

+0

ठीक क्यों नहीं ..... और यह भी खुशी होगी अगर आप मुझे कुछ और प्रतिष्ठा प्राप्त करने में मदद करते हैं ....... – link2jagann

9

उपयोग EntityFunctions.CreateTime विधि:

Fluent वाक्य रचना:

con.CHECKINOUTs.Where(c => EntityFunctions.CreateTime(c.CHECKTIME.Hour, c.CHECKTIME.Minute, c.CHECKTIME.Second) > officeStartTime.TimeOfDay) 
+1

आपके विस्तार समाधान के लिए धन्यवाद। – link2jagann

+4

ध्यान दें कि इकाई फ्रेमवर्क 6 के लिए, यह बदल गया है 'डीबीफंक्शन। क्रेटटाइम' –

4
बस एक मुखिया के रूप में

अप, अगर यो आप एंटीटी फ्रेमवर्क संस्करण 6.0.0.0, EntityFunctions का उपयोग कर रहे हैं आउट किया गया है।

समान कार्यक्षमता DbFunctions के तहत पाई जा सकती है।

तो आपके उत्तर के लिए, EF6 का उपयोग कर, इसे इस तरह दिखेगा:

con.CHECKINOUTs.Where(c => DbFunctions.CreateTime(c.CHECKTIME.Hour, c.CHECKTIME.Minute, c.CHECKTIME.Second) > officeStartTime.TimeOfDay) 

आशा इस मदद करता है!