ببینید شما در انتخاب نوع حالات اشتباه نمی کنید اما ایدتون باید با تعداد شرط ها خودکتر نوع حالا ایجاد میشن. همونطور که در بالا اشاره شد ، جستجوی ما بر اساس فیلد هست.
بذارید مسئله رو روشن تر بیان کنم. خب شما در بالا 8 مدل جستجو رو گفتید که در 3 فیلد جستو ها صورت میگیرن :
· نوع استخدام
· مرتبه علمی
· تخصص
که من همه فیلد ها رو براتون در نظر می گیر تا بهتر راهنمایی بشید.
· نوع استخدام
· مرتبه علمی
· تخصص
· دانشکده
· شهرستان
· استان
· استان محل خدمت
خب فرم شما هم اماده هست و 7 حالت رو داره و شرط با باید با استفاده از Predicate Builder باید بدین صورت باشه
var predicateOstad = PredicateBuilder.True<Ostad>();
if(chkNoeEstekhdam.checked)
{
predicateOstad = predicateOstad.And(d=>d.noeEstekhdam==”داده ای که کاربر انتخاب کرده”);
}
if(chkMartabeEmli.checked)
{
predicateOstad = predicateOstad.And(d=>d. MartabeEmli==”داده ای که کاربر انتخاب کرده”);
}
if(chkTakhasos.checked)
{
predicateOstad = predicateOstad.And(d=>d.Takhasos==”داده ای که کاربر انتخاب کرده”);
}
if(chkDaneshkade.checked)
{
predicateOstad = predicateOstad.And(d=>d.Daneshkade==”داده ای که کاربر انتخاب کرده”);
}
if(chkShahrestan.checked)
{
predicateOstad = predicateOstad.And(d=>d.Shahrestan==”داده ای که کاربر انتخاب کرده”);
}
if(chkOstan.checked)
{
predicateOstad = predicateOstad.And(d=>d.Ostan==”داده ای که کاربر انتخاب کرده”);
}
if(chkOstanMahaleKhedmat.checked)
{
predicateOstad = predicateOstad.And(d=>d.OstanMahaleKhedmat==”د ده ای که کاربر انتخاب کرده”);
}
خب همونطور که می بینید فقط 7 شرط داریم حالا اینا به نظرتون انتخاب یا عدم انتخاب هرکدومشون چند حالت داره ؟
مثلا کاربر 3 چک باکس زیر رو تیم میزنه :
chkNoeEstekhdam و chkMartabeEmli و chkOstan
به عبارتی مثلا با این داده ها :
نوع استخدادم : هیئت علمی
مرتبه علمی : استادیار
استان : خوزستان
حالا Predicate Builder شما 3 شرط رو شامل شده و دستور Where ما بدین صورت میشه :
لیست تمامی استادهایی که نوع استخدامشون هیئیت علمی هست و مرتبه علمی اونها استادیار هست که در استان خوزستان هستند رو بهمون برگردون.
خب همونطور که می بینید فقط 7 شرط بیشتر نداریم برای 7 فیلدی که شما براشون چک باکس ایجاد کردید.
امیدوارم منظورم رو رسونده باشم.
موفق باشید