public IQueryable <preg_answer> GetItemsByParams(preg_answer data) { IQueryable <preg_answer> result = connect.preg_answer; for (int i = 0; i < data.GetType().GetProperties().ToList().Count(); i++) { string propertyName = data.GetType().GetProperties().ToList()[i].Name; var propertyValue = data.GetType().GetProperty(propertyName).GetValue(data, null); if (propertyName == "user_id" && (int)(propertyValue) != 0) { result = result.Where(c => c.user_id == (int)(propertyValue)); } else if (propertyName == "question_id" && (int)(propertyValue) != 0) { result = result.Where(c => c.question_id == (int)(propertyValue)); } else if (propertyName == "questiondate" && propertyValue != null) { result = result.Where(c => c.questiondate == (DateTime)(propertyValue)); } else if (propertyName == "title" && propertyValue != null) { result = result.Where(c => SqlFunctions.PatIndex("%" + propertyValue.ToString() + "%", c.title) > 0); } else if (propertyName == "content" && propertyValue != null) { result = result.Where(c => SqlFunctions.PatIndex("%" + propertyValue.ToString() + "%", c.content) > 0); } } return(result); }