类似于表中的简单成员UserProfiles
资格Roles
UserInRoles
我已经使用此代码在表中创建了与之间UserProfiles
的关系Clients
UserInClients
modelBuilder.Entity<UserProfiles>()
.HasMany<dbClient>(r => r.Clients)
.WithMany(u => u.UserProfiles)
.Map(m =>
{
m.ToTable("webpages_UsersInClients");
m.MapLeftKey("ClientId");
m.MapRightKey("UserId");
});
我UserProfiles
有一个public virtual ICollection<dbClient> Clients { get; set; }
,我Clients
有一个public virtual ICollection<UserProfiles> UserProfiles { get; set; }
- 如果您需要查看模型,请告诉我,我可以发布它们
在模型和视图中,我想
- 显示所有客户端( Distinct )并显示有多少用户可以访问该客户端
- 创建一个仅显示当前登录用户允许查看的客户端的视图。
我认为这就像访问我的模型 Clients.ClientID 的属性一样简单,我一直在尝试诸如 Clients.ClientID.select(u=>u.UserId == clientid) 之类的东西,但我知道得更好,并且知道它不会而且会不行。
我的其他想法是创建一个包含 CliendID 和 UserID 的模型(就像它创建的表一样),这样我就可以在我的控制器中使用连接来找到正确的值?
最后我想要完成的是KendoUI
CascadingDropDownList
在我的GetCascadeClients
JsonResult
return Json(db.Clients.Select(c => new { ClientID = c.ClientID, ClientName = c.Client }), JsonRequestBehavior.AllowGet);
我的问题是,当我在我的控制器中时,我如何访问这个由实体框架构建的表?
编辑:
SOLUTION QUERY由两个答案拼凑而成
return Json(db.Clients
.Include(c => c.UserProfiles)
.Where(c => c.UserProfiles.`Any(up => up.UserName == User.Identity.Name))`
.Select(c => new
{
ClientID = c.ClientID,
ClientName = c.Client,
UserCount = c.UserProfiles.Count()
}),
JsonRequestBehavior.AllowGet);