c# - Pass multiple params array into method -


मेरे पास इस फ़ंक्शन के साथ एक जेनेरिक रिपोजिटरी है:

  सार्वजनिक आभासी IEnumerable & lt; TEntity & gt; पृष्ठ = 0, पैरामीटर अभिव्यक्ति & lt; टीएनटीटीआई, बाल & gt; & gt; [] फिल्टर) {IQueryable & lt; TENTity & gt; प्राप्त करें (Func & lt; IQueryable & lt; TEntity & gt ;, IOrderedQueryable & lt; TEntity & gt; क्वेरी = डीबीसेट; अगर (फिल्टर! = नल) {foreach (फ़िल्टर में var z) {query = query.Where (z); }} यदि (orderBy! = नल) {वापसी आदेशबी (क्वेरी) .ओलिस्ट (); } Else {return query.ToList (); }}   

मेरे एक नियंत्रक में मुझे भी क्लाउज़ का उपयोग करने की ज़रूरत है इसलिए मैंने नया वर्ग DeviceInstanceRepository बनाने का निर्णय लिया जो कि GenericRepository और नया GetFiltered विधि बनाएं और मुझे ऐसा कुछ मिला:

  सार्वजनिक IEnumerable & lt; DeviceInstance & gt; GetFiltered (Func & lt; IQueryable & lt; DeviceInstance & gt ;, IOrdered क्यूबएबल & lt; DeviceInstance & gt; & gt; आदेश बाय = नल, पृष्ठ = 0, ** क्याटिप्प ShouldIUSe? ** System.Linq.Expressions.Expression & lt; Func & lt; DeviceInstance, bool & gt; & gt; [] इसमें शामिल हैं , पैराम्स सिस्टम.लिंक। एक्सप्रेन्स। एक्सपेरशन & lt; Func & lt; DeviceInstance, bool & gt; & gt; [] फ़िल्टर) {IQueryable & lt; DeviceInstance & gt; क्वेरी = डीबीसेट; यदि (शामिल करें! = नल) {foreach (शामिल में var z) {query = query.Include (z); }} यदि (फिल्टर! = नल) {foreach (फ़िल्टर में var z) {query = query.Where (z); }} यदि (orderBy! = नल) {वापसी आदेशबी (क्वेरी) .ओलिस्ट (); } Else {return query.ToList (); }}   

लेकिन मुझे पैरामीटर प्रकार के साथ समस्याएं हैं I मुझे मालूम है कि मैं दो पैरामीटर सरणी नहीं पारित कर सकता क्या आप मुझसे यह सुझाव दे सकते हैं कि इस रेखा को कैसे संशोधित करें:

  पैराम्स सिस्टम.लिंक। एक्सप्रेन्स। एक्सप्रेशन & lt; DeviceInstance, bool & gt; & gt; [] इसमें शामिल हैं,   < P> चीजों को काम करने के लिए   

मुझे यकीन नहीं है कि आप इस तरह के दृष्टिकोण का उपयोग करने के लिए क्या प्रयास कर रहे हैं , लेकिन यदि आप दृढ़ता से अपनी विधि में दो पैरामीटर पैरामीटर पास करना चाहते हैं, तो आप उन्हें एक पैरामीटर में मर्ज कर सकते हैं, बस उनमें से एक की संख्या भी पारित करने की ज़रूरत है इस तरह (नोटिस लो और छोड़ें वहां):

  सार्वजनिक आईएनइन्मेरेबल & lt; DeviceInstance & gt; GetFiltered (Func & lt; IQueryable & lt; DeviceInstance & gt ;, IOrderedQueryable & lt; DeviceInstance & gt; & gt; ऑर्डर बाय = नल, int = पेज = 0, इंट नंबरऑफ़ शामिल करें एक्सप्रेसन = 0, पैराम्स सिस्टम। लिंक्स। एक्सप्रेन्स। एक्सपेरसन & lt; Func & lt; DeviceInstance, bool & gt; [] भाव ) {IQueryable & lt; DeviceInstance & gt; क्वेरी = डीबीसेट; यदि (अभिव्यक्ति! = नल) {foreach (अभिव्यक्ति में var z। ले लो (numberOfIncludeExpressions)) {query = query.Include (z); } Foreach (अभिव्यक्ति में var z.kip (numberOfIncludeExpressions)) {query = query.Where (z); }} यदि (orderBy! = नल) {वापसी आदेशबी (क्वेरी) .ओलिस्ट (); } Else {return query.ToList (); }}    

Comments

Popular posts from this blog

sonata admin - how to add ManyToOne property field in configureListfield in sonataAdmin -

wpf - ControlTemplate with changes for every class -

sql - Return Function using Cursor -