根据外键查找表

时间:2019-10-28 14:29:36

标签: c# ef-core-2.2

我有这两个表以及它们之间的桥梁:

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; }
    }

我需要创建一个方法,该方法将搜索字段和用户ID用作参数,返回所有现实到该用户ID的位置,并搜索字符串是否包含在任何位置的道具中。

我在根据用户ID返回位置时遇到问题。

我尝试了_context.UserLocations.Include(ul=>ul.Location).Where(l=>l.UserId==userId) 但这没有用,因为尝试使用l.UserId时出现语法错误。 我也尝试了另一种方法,_context.Locations.Include(l=>l.UserLocations),但遇到了同样的问题。

我需要找到一种方法来检索与用户相关的所有位置。之后,可以使用Contains()方法轻松地进行搜索。

1 个答案:

答案 0 :(得分:1)

尝试一下

_context.UserLocations.Where(x => x.UserId == userId).Select(x => x.Location)