मैं 60 दिनों के 30 दिनों आज की तारीख में 20 दिन विभिन्न में डेटाबेस में रिकॉर्ड का चयन करने की कोशिश नहीं पहचानता है।LINQ विधि 'System.TimeSpan घटाना (System.DateTime)' विधि
कृपया नीचे में इस क्वेरी को देखते हैं।
var uploads = (
from files in _fileuploadRepository.Table
join product in _productRepository.Table on files.Event equals product.Id
where
(
product.EventDate != null &&
(product.EventDate.Subtract(DateTime.Now).Days <= 60 && product.EventDate.Subtract(DateTime.Now).Days >= 60) ||
(product.EventDate.Subtract(DateTime.Now).Days <= 30 && product.EventDate.Subtract(DateTime.Now).Days >= 30) ||
(product.EventDate.Subtract(DateTime.Now).Days <= 20 && product.EventDate.Subtract(DateTime.Now).Days >= 20))
&&
files.IsSkiped == false
select files;
).ToList();
लेकिन इस क्वेरी में एक त्रुटि हुई।
मैं अनजान हूँ। कृपया मदद करे।
लैम्ब्डा बयान के बाहर आप गणनाएं करना। जब यह लैम्ब्डा के अंदर होता है जैसे आप इसका उपयोग कर रहे हैं, तो आप ऐसा करने की कोशिश कर रहे हैं जब EntityFramework गणना करता है। – Middas
तो LINQ से SQL को 'product.EventDate.Subtract (DateTime.Now) जैसी अभिव्यक्ति "अनुवाद" नहीं होगी। सी # में एक विकल्प के अंकन 'product.EventDate है - DateTime.Now' जहां एक का उपयोग करता है [शून्य (' -') ऑपरेटर की एक अधिभार] (http://msdn.microsoft.com/en-us/library/1905yhe2। aspx)। क्या किसी को पता है कि _that_ LINQ से SQL के साथ काम करेगा?आखिरकार, एसक्यूएल बोलियों में तिथियों का घटाव भी संभव है। –
@JeppeStigNielsen ईएफ के लिए आप EntityFunctions का उपयोग कर सकते हैं। डिफडेज़ – scartag