1

抱歉 - 我敢打赌这已经被问过很多次了,但我找不到我的问题的答案。

我有两个实体框架类,Company 和 Users。我想制作一份将用户分配给他们的公司列表。

public class FIGcompany
 {
    public int Id { get; set; }
    public string Name { get; set; }
    public virtual ICollection<UserProfile> Users { get; set; }

 }

public class UserProfile
{
    [Key]
    [DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)]
    public int UserId { get; set; }
    public string UserName { get; set; }
    public ICollection<FIGcompany> Companies { get; set; }
}

我正在使用的 Linq,我已经做到了:

 var t = db.Companies
            .Any(q => q.Users.Contains(q.Users.

谁能帮我完成它,我正在努力从用户那里获取 UserId 字段来进行比较。

谢谢!

4

2 回答 2

2

此查询将返回至少有一个分配用户的公司:

var companiesWithUsers = db.Companies.Where(c => c.Users.Any());

如果您需要拥有一些id用户的公司,那么:

var companiesForUser = db.Companies.Where(c => c.Users.Any(u => u.UserId == id));
于 2013-05-28T12:51:01.623 回答
1

当您有用户 ID 时,为什么要查询公司?

db.Users.First(user => user.UserId == givenId).Companies;
于 2013-05-28T13:27:38.297 回答