Consulta Linq a entidad de referencia

¿Cómo puedo hacer referencia a una entidad? Yo se que en esta linea

if(!db.users.any(u => u.customer =="mike")

(db.users) se refiere a la tabla de usuarios. Así que ahora necesito hacer referencia a un iqueryable en un .cs

public IQueryable<Address_List_NEW> GetAddress_List_NEWs(string Customer)
{ 
    return this.DataContext.Address_List_NEWs;
}  

¿¿Por qué esto no funciona??

if(!Address_List_NEW.any(u => u.Customer == "mike")

preguntado el 16 de mayo de 11 a las 17:05

2 Respuestas

Debería devolver un tipo fuerte IQueryable<T>, de lo contrario, Linq no conoce las propiedades del objeto al que está accediendo:

public IQueryable<Address_List_NEW> GetAddress_List_NEWs() 
{ 
   return this.DataContext.Address_List_NEWs; 
}

Tenga en cuenta que no está utilizando el parámetro que pasó, por lo que lo eliminé, ¿es esto lo que pretendía? (En este momento, este método no está haciendo mucho)

Entonces deberías poder hacer:

var adressList = GetAddress_List_NEWs();
if(!adressList.Any(u => u.Customer == "mike"))
...

contestado el 16 de mayo de 11 a las 21:05

Address_List_NEW es el nombre de una clase, no un IQueryable<Address_List_NEW> entonces no puedes llamar Any fuera de eso.

Según la firma de su función, parece que desea escribir esto:

public bool CustomerHasAddress(string Customer) 
{ 
   return !this.DataContext.Address_List_NEWs.Any(u => u.Customer == Customer); 
}

O posiblemente algo como esto:

public IQueryable<Address_List_NEW> GetAddress_List_NEWsForCustomer(string Customer) 
{ 
   return this.DataContext.Address_List_NEWs.Where(u => u.Customer == Customer); 
}

Entonces podrías llamar GetAddress_List_NEWsForCustomer("mike").Any()

O incluso algo como esto:

public IQueryable<Address_List_NEW> GetAddress_List_NEWs() 
{ 
   return this.DataContext.Address_List_NEWs; 
}

Desde donde podrías llamar GetAddress_List_NEWs.Any(u => u.Customer == "mike")

contestado el 16 de mayo de 11 a las 22:05

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.