View Full Version : جستجو بوسیله Linq بر اساس پارامتر های متغییر
sahele_sheni
یک شنبه 18 مرداد 1394, 17:54 عصر
سلام
یه query روی یه آبجکت که IQueryable رو پیاده سازی میکنه میخوام بنویسم به صورتی که 3 پارامتر ورودی رو بگیره و با توجه به اونها اطلاعات رو انتخاب کنه . حالا ممکنه این 3 پارامتر مقدار داشته باشن و یا ممکنه یکی یا دوتا از پارامتر ها مقدار داشته باشن .
در صورتی که کسی در این مورد راهنمایی کنه ممنون میشم .
SabaSabouhi
دوشنبه 19 مرداد 1394, 09:11 صبح
سلام
یه query روی یه آبجکت که IQueryable رو پیاده سازی میکنه میخوام بنویسم به صورتی که 3 پارامتر ورودی رو بگیره و با توجه به اونها اطلاعات رو انتخاب کنه . حالا ممکنه این 3 پارامتر مقدار داشته باشن و یا ممکنه یکی یا دوتا از پارامتر ها مقدار داشته باشن .
در صورتی که کسی در این مورد راهنمایی کنه ممنون میشم .
سلام
خیلی ساده هست، اگه از Extension Methods استفاده کنی این شکلی میشه:
var queryable = MyContext.MyTable;
if ( condition1 )
queryable = queryable.Where ( x=> x.Column1 == value1 );
if ( condition2 )
queryable = queryable.Where( x=> x.Column2 == value2 );
if ( condition3 )
queryable = queryable.Where( x=> x.Column3 == value3 );
حتا من مرتب کردن رو هم به همین صورت شرطی انجام میدم.
صبا صبوحی
sahele_sheni
دوشنبه 19 مرداد 1394, 10:54 صبح
ممنون از جوابتون ولی ممکنه یک پارامتر رو وارد کنه ، ممکنه 2 تا و یا ممکنه 3 تا رو وارد کنه . در واقع تعداد پارامترها متغیر هست .
SabaSabouhi
دوشنبه 19 مرداد 1394, 11:10 صبح
ممنون از جوابتون ولی ممکنه یک پارامتر رو وارد کنه ، ممکنه 2 تا و یا ممکنه 3 تا رو وارد کنه . در واقع تعداد پارامترها متغیر هست .
سلام
پس پاسخ من رو با دقت نگاه نکردی.
اون condition ها برای همین هستن، مثلاً شرط میکنی که اگه TextBox1.Text != string.Empty اون پارامتر رو اضافه کنه.
من تو برنامههام دقیقاً همین کار رو میکنم و بسته به این که کاربر صفر یا چند مورد رو پر کنه IQueryable رو تکمیل میکنم.
صبا صبوحی
vBulletin® v4.2.5, Copyright ©2000-1403, Jelsoft Enterprises Ltd.