У меня есть эти две таблицы и мост между ними:
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; }
}
Мне нужно создать метод, который принимает в качестве параметра поле поиска и идентификатор пользователя, возвращает всеместоположения, присвоенные этому идентификатору пользователя, и ищет, содержится ли строка в каком-либо из реквизитов местоположений.
У меня возникают проблемы с возвратом местоположений на основе идентификатора пользователя.
Я пытался _context.UserLocations.Include(ul=>ul.Location).Where(l=>l.UserId==userId)
но это не сработало, так как я получил синтаксическую ошибку при попытке использовать l.UserId
. Я также попробовал наоборот, _context.Locations.Include(l=>l.UserLocations)
, но столкнулся с той же проблемой.
Мне нужно найти способ получить все местоположения, связанные с пользователем. Поиск может быть легко выполнен с использованием метода Contains()
.