c# - 选择 y 表中的所有 x

标签 c# sql linq asp.net-mvc-5

我有用户和城市表。我想获取用户集合中所有城市的列表,以便我可以访问所有城市 ID;

    public class City
{
    public int ID { get; set; }
    public string Name { get; set; }

    public virtual ICollection<ApplicationUser> AppUserID { get; set; }
    public virtual ICollection<Measurement> Measurements { get; set; }
}
   public class ApplicationUser : IdentityUser
{
    public override string Id { get; set; }
    public virtual ICollection<City> Cities { get; set; }
}

我已经尝试过

var cities = db.Cities.Where(c => c.AppUserID != null ); //and with .ToList()

var cities = from city in db.Cities
                     join user in db.Users
                     on city.AppUserID equals user.Cities
                     select city.ID;

但它不起作用。 有什么解决办法吗? 提前致谢。

最佳答案

c.AppUserID != null 不起作用,因为集合是空的,而不是 null

这将为您提供所有具有非空 AppUserID 集合的城市:

var cities = db.Cities.Where(c => c.AppUserID.Any() )

关于c# - 选择 y 表中的所有 x,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39488521/

相关文章:

c# - 将 LINQ 查询转换为 Dictionary<string, string[]>

c# - 如何让EF按照正确的顺序执行插入查询?

sql - 创建一个列并使其默认为一个值

mysql - JOIN 查询中的条件放在哪里?

MySQL NOT IN 不起作用

c# - 通过依赖注入(inject)使用异步 Controller 时 dbContext 的生命周期

C#、本地化、资源和 MonoDevelop

c# - 如何在 C# linq 中制作 AND 运算符?

javascript - LinqJs - 使用非重复计数进行分组

c# - 按键使用 list<int> 作为 linq 组