مرجع تخصصی برنامه نویسان

بزرگترین انجمن برنامه نویسان فارسی زبان

مشکل مقدار int در DynamicQuery

چهارشنبه, 24 بهمن 1397 14:32

مشکل مقدار int در DynamicQuery

سلام
من دستور زیر را نوشته ام

 public ICollection<Table_1> Search(
            string natiolId, string lName, string fName, Int32? sex,
            Expression<Func<Table_1, bool>> orderBy = null)
        {
            var db = new TestEntities();
            using (db)
            {
                var q = db.Table_1.Where(u => u.NationalID.StartsWith(natiolId));
                q = q.Where(c => c.LastName.StartsWith(lName));
                q = q.Where(c => c.FirstName.StartsWith(fName));
                q = q.Where(c => c.Sex.ToString().Contains(sex.ToString()));
                if (orderBy != null) q = q.OrderBy(orderBy);
                return q.ToList();
            }
        }

کد بالا در مهمه موارد بجز مورد زیر درست کار میکند
وقتی sex(مقدار int32?) را برابر null قرار می دهم هیچ داده ای برنمیگرداند درصورتیکه برای اسم وفامیلی و کد ملی این مشکل وجود ندارد
باید برای رفع این مشکل باید چکار کنم

چهارشنبه, 24 بهمن 1397 15:42

public ICollection<Table_1> Search(
           string natiolId, string lName, string fName, Int32? sex,
           Expression<Func<Table_1, bool>> orderBy = null)
       {
           var db = new TestEntities();
           using (db)
           {
               var q = db.Table_1.Where(u => u.NationalID.StartsWith(natiolId));
               q = q.Where(c => c.LastName.StartsWith(lName));
               q = q.Where(c => c.FirstName.StartsWith(fName));
	if(sex.HasValue)
               	q = q.Where(c => c.Sex.ToString().Contains(sex.ToString()));
               if (orderBy != null) q = q.OrderBy(orderBy);
               return q.ToList();
           }
       }

سلام - این کد را تست کنید

کسانی که از این پست تشکر کرده اند : iran,

ارسال پاسخ برای این تاپیک

ارسال پاسخ مخصوص اعضا سایت می باشد ! میتوانید با حساب کاربری خود وارد سایت شده یا ثبت نام کنید