对不起 - 我打赌以前曾经多次询问过,但我找不到问题的答案。
我有两个实体框架类,公司和用户。我想生成一个公司列表,其中包含分配给他们的用户。
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字段进行比较。
谢谢!
答案 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;