2

i have page where user can search also by ID and for that i tried to Convert int to string ,but when i run page i get this error.Can anyone help me or point me in the right direction!
Thanks in advance :)

LINQ to Entities does not recognize the method 'Int32 ToInt32(System.String)' method, and this method cannot be translated into a store expression.

Controller:

 public ActionResult Lukkedesager(string searchingLukkedesager, int? pageNumber)

   {
        IPagedList<RMAHistory> query = db.RMAStatus
       .Join(db.RMA_History, u => u.ID, y => y.StatusID, (u, y) => new { u, y })
       .Where(x => x.y.Kundenavn.Contains(searchingLukkedesager) || Convert.ToString(x.y.Id).Contains(searchingLukkedesager))
       .Select(t => new RMAHistory
            {
               Kundenavn = t.y.Kundenavn,
               Id = t.y.Id

            }).ToPagedList(pageNumber ?? 1, 10);


            return View(query);

   }

View:

using (Html.BeginForm("Lukkedesager", "User", FormMethod.Get))
   {

 @Html.TextBox("searchingLukkedesager", null, new { @placeholder = "VareNR, FakturaNR, Firmanavn", @class = "form-control", @id = "tx1" })

<button class="srhbtn" id="sh1" type="submit">SØG</button>

      }
Fuzzybear
  • 1,388
  • 2
  • 25
  • 42
7 seconds
  • 133
  • 2
  • 17

1 Answers1

1

Instead of Convert.ToString() use x.y.id.ToString().Contains...

  IPagedList<RMAHistory> query = db.RMAStatus
   .Join(db.RMA_History, u => u.ID, y => y.StatusID, (u, y) => new { u, y })
   .Where(x => x.y.Kundenavn.Contains(searchingLukkedesager) || x.y.Id.ToString().Contains(searchingLukkedesager))
   .Select(t => new RMAHistory
        {
           Kundenavn = t.y.Kundenavn,
           Id = t.y.Id

        }).ToPagedList(pageNumber ?? 1, 10);


        return View(query);
Coskun Ozogul
  • 2,389
  • 1
  • 20
  • 32