C# 获取包含id字段为x的对象的值列表
抱歉-我打赌这已经被问了很多次了,但是我找不到我问题的答案 我有两个实体框架类:公司和用户。我想制作一个有用户分配给他们的公司列表C# 获取包含id字段为x的对象的值列表,c#,linq,entity-framework,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
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; }
}
有人能帮我完成吗,我正在努力从用户那里获取UserId字段来进行比较
谢谢 此查询将返回至少有一个已分配用户的公司:
var companiesWithUsers = db.Companies.Where(c => c.Users.Any());
如果您需要的公司的用户具有某些id,则:
var companiesForUser = db.Companies.Where(c => c.Users.Any(u => u.UserId == id));
当你有用户ID时,为什么要查询公司
db.Users.First(user => user.UserId == givenId).Companies;
您使用的是延迟加载还是快速加载。。??如果急于加载,那么您可以使用include()来完成此操作。
q.Users.Contains(q.Users.
是多余的。q.Users.Contains(db.Users…)无论哪种方式都是正确的-我想您希望使用q.Users.Contains(db.Users…)
.Mmn..是否要获取拥有特定用户但没有用户id的公司?抱歉-我需要更清楚-例如,登录用户的用户id为47,我想创建一个该用户已分配到的所有公司的列表。首先Any
将返回一个bool
指示您需要使用Where
返回与您的谓词匹配的公司。
db.Users.First(user => user.UserId == givenId).Companies;