Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 获取包含id字段为x的对象的值列表_C#_Linq_Entity Framework - Fatal编程技术网

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;