C# Lambda,从嵌套列表中获取属性
我试图检索给定CustomerId的UserProfile对象列表。我有以下几点:C# Lambda,从嵌套列表中获取属性,c#,entity-framework,lambda,C#,Entity Framework,Lambda,我试图检索给定CustomerId的UserProfile对象列表。我有以下几点: public class UserRole { [Key] [DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)] public int UserRoleId { get; set; } public Role Role { get; set; } pub
public class UserRole
{
[Key]
[DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)]
public int UserRoleId { get; set; }
public Role Role { get; set; }
public Customer Customer { get; set; }
public virtual UserProfile UserProfile { get; set; }
}
public class Customer
{
public Customer()
{
this.UserRoles = new Collection<UserRole>();
}
[Key]
[DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)]
public int CustomerId { get; set; }
[Display(Name = "Gruppens namn")]
public string Name { get; set; }
[InverseProperty("Customers")]
public virtual ICollection<UserRole> UserRoles { get; set; }
}
公共类用户角色
{
[关键]
[DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)]
public int UserRoleId{get;set;}
公共角色{get;set;}
公共客户客户{get;set;}
公共虚拟用户配置文件用户配置文件{get;set;}
}
公共类客户
{
公众客户()
{
this.UserRoles=新集合();
}
[关键]
[DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)]
public int CustomerId{get;set;}
[显示(Name=“Gruppens namn”)]
公共字符串名称{get;set;}
[反向财产(“客户”)]
公共虚拟ICollection用户角色{get;set;}
}
我似乎找不到一种方法来获取用户配置文件。我可以通过以下操作获得用户角色列表:
dbContext.Customers.First(c=>c.CustomerId==customer.CustomerId).UserRoles
但无法访问该对象的用户配置文件。我也试过了
dbContext.UserRoles.Where(c=>c.Customer.CustomerId==CustomerId)
但同样的结果。想法?要获取特定客户的配置文件列表:
var result = dbContext.UserRoles
.Where(ur => ur.Customer.CustomerId == customer.CustomerId)
.Select(ur => ur.UserProfile);
你的用户有多个角色,所以谈论“用户配置文件”毫无意义。您想要哪个?
UserRoles
是一个集合。它没有UserProfile
我想要一个所有UserProfilesdbContext.UserRoles.Select(ur=>ur.UserProfile.ToList()的列表;