我試圖將asp.net成員資格表連接到一個asp.mvc 3網站。我一直在Steve Sanderson的書「Pro ASP.NET MVC 3 Framework」中爲體育商店編寫教程,並將其應用於從會員exe生成的表中。在實體框架中映射連接表
所以我有一個用戶類,看起來像:
namespace Domain.Entities
{
public class User
{
public Guid UserId { get; set; }
public string UserName { get; set; }
public DateTime LastActivityDate;
public virtual ICollection<Role> Roles { get; set; }
}
public class Role
{
public Guid RoleId { get; set; }
public string RoleName { get; set; }
}
}
和上下文類,看起來像:
public class EFDbContext : DbContext
{
public DbSet<User> Users { get; set; }
public DbSet<Role> Roles { get; set; }
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Entity<User>().ToTable("aspnet_users");
modelBuilder.Entity<Role>().ToTable("aspnet_roles");
}
}
,但我得到一個錯誤,因爲我以爲它尋找之間的連接這兩個表實際上有一個連接表(aspnet_UsersInRoles
),以避免多對多的連接,當我嘗試引用用戶的角色模型時,例如:
var test = _repository.Users.FirstOrDefault().Roles.Count();
{ 「無效的列名稱User_UserId'。\ r \ n無效的列名 'User_UserId'。\ r \ n無效的列名稱User_UserId'。」}
是有辦法來映射該表使用連接表使用實體框架?只需添加一個新的ADO.NET實體數據模型並讓Visual Studio對數據庫進行逆向工程就更好了嗎?
找到一組優秀的博客文章,涵蓋了如何在這裏操作EF:http://vincentlauzon.wordpress.com/2011/04/21/entity-framework-4- 1-bypassing-ef-query-mapping-8 /如果其他人有類似的需求 – GrahamJRoy 2012-01-23 14:46:44