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