लिंक से इकाइयों के साथ, मैं मिलान पंक्ति के पास पंक्तियों को खोजने के लिए लॉग तालिका से पूछताछ करने का प्रयास कर रहा हूं। मुझे क्वेरी के अंदर एक तारीख जोड़ने में परेशानी हो रही है। अभी तक मेरे पास इतना ही है।लिंक से इकाइयों में दिनांक
from
l in objectSet.Logs
let
match = objectSet.Logs.Where(whatever).FirstOrDefault()
where
l.Timestamp > (match.Timestamp - twoHours)
&& l.Timestamp < (match.Timestamp + twoHours)
select
l
"जो कुछ भी" शर्त यह है कि पंक्ति मैं में दिलचस्पी रखता हूँ पाता बाहर छोड़कर, "twoHours" variably ऐसी समयावधि, एक .AddHours()
समारोह और इसके आगे किया गया है। मुझे सही तरीका नहीं मिला है कि ईएफ एसक्यूएल उत्पन्न कर सकता है जो एक फ़ील्ड (match.Timestamp) से मूल्य को निरंतर जोड़ता है।
स्पष्ट समाधान "मैच" क्वेरी पहले करना है और फिर दूसरी क्वेरी में शाब्दिक मान का उपयोग करना है, लेकिन मैंने यहां मुख्य समस्या (क्वेरी में दिनांक जोड़ना) और वास्तविक तथ्य में कोड उदाहरण को सरल बना दिया है मेरी क्वेरी अधिक जटिल है और यह आदर्श नहीं होगा।
चीयर्स
मैं ने वही समस्या पड़ा है पक्ष में पदावनत किया गया है। समस्या यह है कि .ddHours() में SQL समकक्ष नहीं है, और इस प्रकार, लिंक SQL अभिव्यक्ति में कनवर्ट करने में असमर्थ है। मैंने कॉल करके देरी निष्पादन का आह्वान करके इसे दूर कर लिया है। टोस्टिस्ट() और फिर अपना ऐड-मेमोरी संग्रह पर एडीडहॉर्स() फ़िल्टर को लागू करना। – dotariel
@ XSaint32, यह दोगुना गलत है। वहाँ * है * [ए (टी) एसक्यूएल समतुल्य,] (http://msdn.microsoft.com/en-us/library/ms186819.aspx) और आप * इसे ईएफ से कॉल कर सकते हैं। –
@ क्रेग - इनपुट के लिए धन्यवाद। मुझे इस बारे में पता नहीं था। – dotariel