मेरे पास ओडीटा सेवा है जहां मैं आईडी की सूची द्वारा फ़िल्टर करने की कोशिश कर रहा हूं; एसक्यूएल बराबर होगा कुछ की तरह:ओडाटा "जहां सूची में आईडी" क्वेरी
SELECT * FROM MyTable WHERE TableId IN (100, 200, 300, 400)
संपत्ति मैं पर फिल्टर करने के लिए कोशिश कर रहा हूँ कोई Int32 के रूप में लिखा गया हो। मैं निम्नलिखित है, जो मुझे एक त्रुटि देता है की कोशिश की है "ऑपरेटर संकार्य प्रकार 'Edm.String' और 'Edm.Int32' के साथ असंगत 'जोड़ें'":
string ids = ",100,200,300,400,";
from m in provider.Media where ids.Contains("," + t.media_id.ToString() + ",")
रूप
string ids = ",100,200,300,400,";
from m in provider.Media where ids.Contains("," + t.media_id + ",")
रूप में अच्छी तरह
और
string ids = ",100,200,300,400,";
from m in provider.Media where ids.Contains("," + Convert.ToString(t.media_id) + ",")
और
string ids = ",100,200,300,400,";
from m in provider.Media where ids.Contains(string.Concat(",", t.media_id, ","))
जैसा कि आप देख सकते हैं, वर्तमान में मैं सेवा पूछने के लिए LINQ का उपयोग कर रहा हूं।
क्या कोई तरीका है जो मैं कर रहा हूं, या क्या मैं एक टेक्स्ट फ़िल्टर बनाने और AddQueryOption का उपयोग करके अटक गया हूं, और सूची के माध्यम से पुनरावृत्त कर रहा हूं और मैन्युअल रूप से "या media_id eq 100" खंड जोड़ रहा हूं?
https://gist.github.com/mausch/6893533 –