c# - List.contains throwing null exception? -
i have join query like
public actionresult import(int[] uservalue, int[] provalue, datetime? startdate, datetime? enddate) { list<int> actallid = db.activitys.select(x=>x.id).tolist(); list<int> actchild = fileoperation.childactivity(actallid); datetime start_date = convert.todatetime(startdate); datetime end_date = convert.todatetime(enddate); ienumerable<viewmodelactivitysearch> search = r in db.reports join in db.activitys on r.id equals a.report_id join u in db.users on r.users_id equals u.id join p in db.projects on a.projects_id equals p.id join act in db.activitytypes on a.activity_type_id equals act.id ( (r.start_date == startdate || r.end_date == enddate || uservalue.contains((int)r.users_id) || provalue.contains((int)a.projects_id)) && //status submitted=2, approved=3,exclude child activities (!actchild.contains((int)a.id)) && (r.status == 2 || r.status == 3) ) select new viewmodelactivitysearch { id = a.id, activity_text = a.activity_text, deliverable = a.deliverable, employee = string.concat(u.firstname, " ", u.lastname), start_date = r.start_date, end_date = r.end_date, activity_date = a.activity_date, project = p.name, category = act.activity_type }; bindprojectanduser(); return view(search.tolist()); }
i have search page user can enter start date,enddate,choose users , choose projects. made join query fetch data according variables. problem when user doesnot choose user or project code
uservalue.contains((int)r.users_id) || provalue.contains((int)a.projects_id))
gives error
unable create null constant value of type 'system.int32[]'. entity types, enumeration types or primitive types supported in context.
what else can use instead of contains error not arises. thanks
check null in values try cast explicitly int (like r.users_id) ternary operator before using contains:
where (r.start_date == startdate || r.end_date == enddate || r.users_id != null? uservalue.contains((int)r.users_id) : false || a.projects_id != null ?provalue.contains((int)a.projects_id) : false)
method contains() method check if there's value in list of values of same type , it's fine use here.
Comments
Post a Comment