获取包含id字段为x的对象的值列表

时间:2013-05-28 12:42:09

标签: c# linq entity-framework

对不起 - 我打赌以前曾经多次询问过,但我找不到问题的答案。

我有两个实体框架类,公司和用户。我想生成一个公司列表,其中包含分配给他们的用户。

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字段进行比较。

谢谢!

2 个答案:

答案 0 :(得分:2)

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

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

如果您需要拥有 id 用户的公司,则:

var companiesForUser = db.Companies.Where(c => c.Users.Any(u => u.UserId == id));

答案 1 :(得分:1)

为什么在拥有UserID时查询公司?

db.Users.First(user => user.UserId == givenId).Companies;