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

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

کاربر سایت

iran

عضویت از 1394/01/31

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

  • چهارشنبه 24 بهمن 1397
  • 14:32
تشکر میکنم

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

 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 قرار می دهم هیچ داده ای برنمیگرداند درصورتیکه برای اسم وفامیلی و کد ملی این مشکل وجود ندارد
باید برای رفع این مشکل باید چکار کنم

پاسخ های این پرسش

تعداد پاسخ ها : 1 پاسخ
کاربر سایت

رضا نصیری

عضویت از 1392/10/01

  • چهارشنبه 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();
           }
       }

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

کاربرانی که از این پست تشکر کرده اند

هیچ کاربری تا کنون از این پست تشکر نکرده است

اگر نیاز به یک مشاور در زمینه طراحی سایت ، برنامه نویسی و بازاریابی الکترونیکی دارید

با ما تماس بگیرید تا در این مسیر همراهتان باشیم :)