WHERE IN clause using VB.NET in Entity Framework -


i have 2 checkboxlists. based on items checked, checked values concatenated comma separated string , passed entity framework method. result list(of entity).

i want convert

select *  dbo.findings /*below criteria added if of values checked*/ findingcategoryid in (<checked values>)    , findingseverityid in (<checkboxvalues>) 

i unable find equivalent in vb.net in ef.

i looked @ c# post here , came below code. error

unable create constant value of type 'system.object'. primitive types ('such int32, string, , guid') supported in context.

how can use in clause in vb.net? appreciated.

my code:

public function findings(byval findingseverity string, byval findingcategory string) list(of finding)     dim atypeloanid integer = if(not isnothing(audittypeloanid), audittypeloanid, -1)     dim findingtargetid = cint(findingtarget.loanheader)     using e new lqcentities()         dim result = (from f in e.findingentities _                 hmd in e.headermetadataentities.where(function(h) h.metadataid = f.targetid).defaultifempty() _                 cl in e.checklistentities.where(function(c) c.checklistid = f.targetid).defaultifempty() _                 f.audittypeloanid = atypeloanid _                 select new finding _                        {                             .findingid = f.findingid, _                             .findingcategoryid = f.findingcategoryid, _                             .findingseverityid = f.findingseverityid, _                             .enteredby = f.aduser.displayname, _                             .entereddate = f.entereddate _                         })         dim fsarray() = nothing         dim fcarray() = nothing         if (not string.isnullorempty(findingseverity))             dim fs = findingseverity.split(",")             integer = 0 fs.count - 1                 dim j integer = 0                 if (integer.tryparse(fs(i), j))                     redim preserve fsarray(i)                     fsarray(i) = j                 end if             next             if (fsarray.count > 0)                 result = result.where(function(i) fsarray.contains(i.findingseverityid))             end if         end if         if (not string.isnullorempty(findingcategory))             dim fc = findingcategory.split(",")             integer = 0 fc.count - 1                 dim j integer = 0                 if (integer.tryparse(fc(i), j))                     redim preserve fcarray(i)                     fcarray(i) = j                 end if             next             if (fcarray.count > 0)                 result = result.where(function(i) fcarray.contains(i.findingcategoryid))             end if         end if         return result.tolist()     end using end function 

i changed fsarray , fcarray list(of integer) , worked. code below:

public function findings(byval findingseverity string, byval findingcategory string) list(of finding)         dim atypeloanid integer = if(not isnothing(audittypeloanid), audittypeloanid, -1)         dim findingtargetid = cint(findingtarget.loanheader)         using e new lqcentities()             dim result = (from f in e.findingentities _                     hmd in e.headermetadataentities.where(function(h) h.metadataid = f.targetid).defaultifempty() _                     cl in e.checklistentities.where(function(c) c.checklistid = f.targetid).defaultifempty() _                     f.audittypeloanid = atypeloanid _                     select new finding _                            {                                 .findingid = f.findingid, _                                 .audittypeloanid = f.audittypeloanid, _                                 .findingcategoryid = f.findingcategoryid, _                                 .categorydescription = f.findingcategory.categorydescription, _                                 .findingseverityid = f.findingseverityid, _                                 .severitydescription = f.findingseverity.severitydescription, _                                 .targetid = f.targetid, _                                 .userresponse = f.userresponse, _                                 .field = if(f.findingtargetid = findingtargetid, hmd.columndescription, cl.checklistdesc), _                                 .oldvalue = f.oldvalue, _                                 .newvalue = f.newvalue, _                                 .comments = f.comments, _                                 .enteredby = f.aduser.displayname, _                                 .entereddate = f.entereddate _                             })               if (not string.isnullorempty(findingseverity))                 dim fslist new list(of integer)                 dim fs = findingseverity.split(",")                 integer = 0 fs.count - 1                     dim j integer = 0                     if (integer.tryparse(fs(i), j))                         fslist.add(j)                     end if                 next                 if (fslist.count > 0)                     result = result.where(function(i) fslist.contains(i.findingseverityid))                 end if             end if             if (not string.isnullorempty(findingcategory))                 dim fc = findingcategory.split(",")                 dim fclist new list(of integer)                 integer = 0 fc.count - 1                     dim j integer = 0                     if (integer.tryparse(fc(i), j))                         fclist.add(j)                     end if                 next                 if (fclist.count > 0)                     result = result.where(function(i) fclist.contains(i.findingcategoryid))                 end if             end if             return result.tolist()         end using     end function 

Comments

Popular posts from this blog

php - Calling a template part from a post -

Firefox SVG shape not printing when it has stroke -

How to mention the localhost in android -