ध्यान में रखना एक बात यह है कि डेटाबेस कॉलम का प्रतिनिधित्व करने वाले डेटटाइम structs पर संचालन SQL में अनुवाद नहीं करते हैं।
from e in EfEmployeeContext
where e.DOB.Date > new DateTime(2011,12,01);
... क्योंकि e.DOB डेटाबेस में जन्म तिथि स्तंभ का प्रतिनिधित्व करता है, और एफई कैसे तिथि उप संपत्ति अनुवाद करने के लिए पता नहीं चलेगा: तो, आप की तरह एक प्रश्न नहीं लिख सकते हैं।
हालांकि, वहाँ एक आसान तरीके को क्या आप चाहते हैं तारीखों के आधार पर दिया गया है:
आप सभी कर्मचारियों 12/01/2011 पर एक जन्म तिथि के साथ-साथ उस तारीख के बाद पैदा हुए उन लोगों के रूप को शामिल करना चाहते हैं, तो बस क्वेरी:
from e in EfEmployeeContext
where e.DOB > new DateTime(2011,12,01);
आप 12/01/2011 बाद पैदा हुए केवल कर्मचारियों, फिर क्वेरी शामिल करना चाहते हैं:
from e in EfEmployeeContext
where e.DOB >= new DateTime(2011,12,02);
संक्षेप में, मानदंड, जिसका अर्थ निरंतर या शाब्दिक दिनांक समय है जिसके विरुद्ध आप तुलना कर रहे हैं, सेट अप किया जा सकता है, हालांकि आप चाहते हैं। आप केवल उन गुणों में कट्टरपंथी संशोधन नहीं कर सकते हैं जो भविष्यवाणी के भीतर डीबी कॉलम का प्रतिनिधित्व करते हैं। इसका मतलब है कि आप उदाहरण के लिए एक और दिनांक समय स्तंभ के एक प्रक्षेपण के लिए एक दिनांक समय स्तंभ तुलना नहीं कर सकते,:
//get all employees that were hired in the first six months of the year
from e in EfEmployeeContext
where e.HireDate < new DateTime(e.HireDate.Year, 7, 1);
क्या आपका मतलब एंटिटी फ्रेमवर्क (= LINQ से Entities) और LINQ से SQL (पूर्व EF ORM) दोनों का मतलब है? – abatishchev
FWIW, यदि आप SQL Server 2008 या ऊपर का उपयोग कर रहे हैं, तो संभवतः आपको उन फ़ील्ड के लिए 'दिनांक' ('दिनांक समय' के बजाय) का उपयोग करना चाहिए, जिनके समय का हिस्सा अप्रासंगिक है (यह संभावना नहीं है कि वास्तव में आपके पास दिन का समय होगा पैदा हुआ था, और इससे भी कम संभावना है कि यह आपके लिए सार्थक होगा)। 'डेटटाइम' का उपयोग करते समय 'दिनांक'' उपलब्ध है और आपको इस बात की परवाह नहीं है कि डेटा आपके सभी अंकीय डेटा को 'फ्लोट' में संग्रहीत करने जैसा होगा चाहे डेटा मूल रूप से अभिन्न है या नहीं। –