我想知道如何从我想的控制器和视图访问表。
我的模型看起来像这样
public class UserProfiles
{
[Key]
[DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)]
public int UserId { get; set; }
public string UserName { get; set; }
public virtual ICollection<Roles> Roles { get; set; } //many to many
public virtual ICollection<dbClient> Clients { get; set; } // many to many
}
我的另一个模型看起来像
public class Roles
{
[Key]
[DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)]
[Required(ErrorMessage = "Required")]
public int RoleID { get; set; }
[Required(ErrorMessage = "Required")]
public string RoleName { get; set; }
public virtual ICollection<UserProfiles> UserProfiles { get; set; } //many to many
}
当我从 PMC(包管理器控制台)运行迁移和更新时,它会将带有键的 2 个表创建到第三个表中,该表保存两个表的 ID 值。
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Entity<OilNGasWeb.Models.Roles>()
.HasMany<OilNGasWeb.Models.UserProfiles>(r => r.UserProfiles)
.WithMany(u => u.Roles)
.Map(m =>
{
m.ToTable("Webpages_UsersInRoles");
m.MapLeftKey("RoleId");
m.MapRightKey("UserId");
});
}
最近我尝试过:
var result=(from u in db.UserProfiles
from r in u.Roles **1.**
where r.RoleID.Contains(u.UserId) **2.**
select u);
但不知何故,它并没有在 Webpages_UsersInRoles 上出现......(在它为我创建表之后,我必须为它创建一个类吗????)
为什么我不能链接到它。
2@Andrew Counts 的图片
我遵循的步骤来获取 m2m 表
之后我尝试使用以下示例:
我阅读了所有这些以及更多内容,但没有说如何从控制器级别使用 m2m?将值传递到视图中。
谢谢你的帮助