Tenemos el arreglo a esta incógnita, al menos eso deseamos. Si presentas inquietudes dínoslo, que para nosotros será un gusto ayudarte
Solución:
Esta línea:
var query = _StoreDB.Categories.Select(m => m.Prod_Id).Distinct();
Lo más probable es que su consulta LINQ devuelva IEnumerable… de ints
(a juzgar por Select(m => m.Prod_Id)
). Tiene una lista de enteros, no una lista de objetos de entidad. Intenta imprimirlos y ver lo que tienes.
Vocación _StoreDB.Categories.Select(m => m.Prod_Id)
significa que query
contendrá Prod_Id
valores solamente, no toda la entidad. Sería más o menos equivalente a este SQL, que selecciona solo una columna (en lugar de toda la fila):
SELECT Prod_Id FROM Categories;
Así que cuando iteras a través de query
usando foreach (var item in query)
el tipo de item
es probable int
(o cualquiera que sea tu Prod_Id
la columna es), no tu entidad Es por eso que Intellisense no muestra las propiedades de la entidad que espera cuando escribe “item.
“…
Si desea todas las columnas en Categories
ser incluido en query
ni siquiera necesitas usar .Select(m => m)
. Puedes hacer esto:
var query = _StoreDB.Categories.Distinct();
Tenga en cuenta que si no pasa explícitamente un IEqualityComparer
a Distinct()
, EqualityComparer
se usará (que puede o no comportarse de la manera que usted quiere, dependiendo del tipo de T
implemente o no System.IEquatable
etc.).
Para obtener más información sobre cómo obtener Distinct
para trabajar en situaciones similares a la suya, eche un vistazo a esta pregunta o esta pregunta y las discusiones relacionadas.
valoraciones y comentarios
Si te ha resultado provechoso este artículo, nos gustaría que lo compartas con más programadores de esta forma nos ayudas a difundir nuestra información.