Tengo estas dos tablas y el puente entre ellas:

public class User
    {
        [Required]
        public string Email { get; set; }
        [Required]
        public string FirstName { get; set; }
        [Required]
        public string LastName { get; set; }
        public int Id { get; set; }
        public ICollection<UserLocation> UserLocations { get; set; }
        [Required]
        public string Password { get; set; }
        [Required]
        public string Username { get; set; }
    }
public class Location
    {
        [Required]
        public int Id { get; set; }
        [Required]
        public string Name { get; set; }
        public string Picture { get; set; }
        public string PostCode { get; set; }
        public string Region { get; set; }
        public ICollection<UserLocation> UserLocations { get; set; }
    }
public class UserLocation
    {
        public Location Location { get; set; }
        public int LocationId { get; set; }
        public User User { get; set; }
        public int UserId { get; set; }
    }

Necesito crear un método que tome como parámetro un campo de búsqueda y una identificación de usuario, devuelva todas las ubicaciones relacionadas con esa identificación de usuario y busque si la cadena está contenida en cualquiera de los accesorios de las ubicaciones.

Tengo problemas para devolver las ubicaciones según la identificación del usuario.

Probé _context.UserLocations.Include(ul=>ul.Location).Where(l=>l.UserId==userId) pero eso no funcionó ya que obtuve un error de sintaxis al intentar usar l.UserId. También intenté al revés, _context.Locations.Include(l=>l.UserLocations) pero encontré el mismo problema.

Necesito encontrar una manera de recuperar todas las ubicaciones relacionadas con el usuario. La búsqueda se puede hacer fácilmente usando el método Contains() posteriormente.

0
NAlexP 28 oct. 2019 a las 17:29

1 respuesta

La mejor respuesta

Prueba esto

_context.UserLocations.Where(x => x.UserId == userId).Select(x => x.Location) 
1
A.Jo 28 oct. 2019 a las 15:20