c# - LINQ to Entities does not recognize the method 'Int32 -


public actionresult readxmldevices(int groupid) {                  var query = k in xmlentities.unassigneditems     k.devoracc == true && k.group == groupid     select k;      var view_query = in query                      select new getfreedevices                      {                          marticlenumber = i.articlenumber,                          mfirmware = i.firmware,                          mgroup = i.group,                          mname = i.name,                          msoftware = i.softwareversion,                          sa = getnumberofdevices(i.articlenumber,2),                          sth = getnumberofdevices(i.articlenumber,3),                          sasth = getnumberofdevices(i.articlenumber,7)                      };     return partialview(view_query); }  public int getnumberofdevices(string artno,int loc) {     var num_dev = (from k in xmlentities.deviceview                    k.reserved == false && k.sold == false && k.locationnameid == loc && k.articlenumber == artno                    select k).count();     return num_dev; } 

error:

linq entities not recognize method 'int32 getnumberofdevices(system.string, int32)' method, , method cannot translated store expression. how resolve this???

you can split query in 2 make sure list in-memory before calling getnumberofdevices() method. can make query in-memory converting results list, or in case list<getfreedevices>. way, linq entities not have translations , xml , can use getnumberofdevices() method.

var view_query = (from in query      select new getfreedevices      {         marticlenumber = i.articlenumber,         mfirmware = i.firmware,         mgroup = i.group,         mname = i.name,         msoftware = i.softwareversion       }).tolist(); var result_query = in query      select new getfreedevices      {         marticlenumber = i.marticlenumber,         mfirmware = i.mfirmware,         mgroup = i.mgroup,         mname = i.mname,         msoftware = i.msoftware,         sa = getnumberofdevices(i.marticlenumber,2),         sth = getnumberofdevices(i.marticlenumber,3),         sasth = getnumberofdevices(i.marticlenumber,7)      }; return partialview(result_query); 

please note last statement requires partialview accept list or ienumerable instead of iqueryable.


Comments

Popular posts from this blog

c++ - How do I get a multi line tooltip in MFC -

asp.net - In javascript how to find the height and width -

c# - DataTable to EnumerableRowCollection -