Solución:
Primero, recomiendo encarecidamente verificar el diseño de su base de datos, si hay una buena razón para ID
ser un string
. Consideraría cambiar el ID
Tipo de base de datos a int
y te librarás de este problema al convertir.
El error que obtiene significa que EF no sabe cómo convertir el método Int32.Parse()
a SQL. Básicamente, tienes dos opciones para lidiar con eso:
Haga la comparación fuera del linq con las entidades:
var myVar= Entity.SetName.AsEnumerable()
.Where(p => int.Parse(p.ID) >= start &&
int.Parse(p.ID) <= end);
Pero esto es no recomendado, porque está leyendo el conjunto de resultados completo de la base de datos, antes de aplicar el where
condición.
O hacer función definida por modelo personalizado como se describe en esta publicación sobre SO:
Convertir String a Int en EF 4.0 o Entity Framework: ¿Dónde extiendo el CSDL / MSL?
Primero intente convertir a int
luego pasa ese nombre de variable
int catgry = Convert.ToInt32(customercategory.OWNERSHIP_TYPE);
var customerCateg = (from d in _db.tbl_SIL_CUSTOMER_CATEGORY_MST
.Where(d => d.CAT_ID == catgry) select d.CAT_TYPE).SingleOrDefault();