में बाध्य नहीं था मुझे एक गतिशील फ़िल्टर बनाने की आवश्यकता थी और मैं इकाइयों का उपयोग करना चाहता था। इस कारण से मैं अल्फाहारी से प्रिडिकेटबिल्डर का उपयोग करना चाहता था।सी # भविष्यवाणी बिल्डर इकाइयां: पैरामीटर 'एफ' निर्दिष्ट LINQ से इकाई क्वेरी अभिव्यक्ति
मैं निम्नलिखित कोड बनाया:
var invoerDatums = PredicateBuilder.True<OnderzoeksVragen>();
var inner = PredicateBuilder.False<OnderzoeksVragen>();
foreach (var filter in set.RapportInvoerFilter.ToList())
{
if(filter.IsDate)
{
var date = DateTime.Parse(filter.Waarde);
invoerDatums = invoerDatums.Or(o => o.Van >= date && o.Tot <= date);
}
else
{
string temp = filter.Waarde;
inner = inner.Or(o => o.OnderzoekType == temp);
}
}
invoerDatums = invoerDatums.And(inner);
var onderzoeksVragen = entities.OnderzoeksVragen
.AsExpandable()
.Where(invoerDatums)
.ToList();
जब मैं कोड भाग गया केवल 1 फिल्टर जो एक तारीख फिल्टर नहीं था नहीं था। तो केवल आंतरिक भविष्यवाणी भर गई थी। जब पूर्वानुमान निष्पादित किया गया था तो मुझे निम्न त्रुटि मिली।
पैरामीटर 'एफ' संस्थाओं को निर्दिष्ट LINQ में बाध्य नहीं था अभिव्यक्ति क्वेरी।
उत्तर के लिए खोज करते समय मुझे निम्नलिखित page मिला। लेकिन यह पहले से ही LINQKit में लागू किया गया है।
क्या किसी और ने इस त्रुटि का अनुभव किया है और इसे हल करने का तरीका पता है?
मुझे अपने मूल IQueryable ऑब्जेक्ट से AsExpandable() को कॉल को भी हटाना पड़ा। –
अच्छा जवाब, लेकिन भ्रामक। ब्लडबाज़ का जवाब सरल और अधिक सही उत्तर है – Mick