0

我目前正在创建一个结合了 EntityFramework 和 aspnet 成员表的应用程序。

要动态创建 aspnet 成员表,我遵循了本教程:http: //imar.spaanjaars.com/563/using-entity-framework-code-first-and-aspnet-membership-together

我的问题是aspnet_UsersInRoles桌子。要映射我修改的表OnModelCreating并添加 ff 代码:

modelBuilder.Entity<AspnetUser>()
                .HasMany(u => u.AspnetRoles)
                .WithMany(r => r.AspnetUsers)
                .Map(m =>
                    {
                        m.ToTable("aspnet_UsersInRoles");
                        m.MapLeftKey("UserId");
                        m.MapRightKey("RoleId");
                    });

它成功地创建了aspnet_UsersInRoles表,但我的问题是我没有为此的类/实体,当我覆盖该Seed方法时我无法初始化值。

创建实体aspnet_UsersInRoles也行不通,因为多对多关系aspnet_Usersaspnet_Roles创建一个新表。

关于如何做到这一点的任何想法?在表之间具有多对多关系aspnet_Usersaspnet_Roles使用表aspnet_UsersInRoles并在其中初始化值。

4

1 回答 1

1

您需要将Roles 添加到类的AspnetRoles集合属性中AspnetUser

var role = new AspnetRole { Name = "Foo" };
var user = new AspnetUser { Name = "Bar", /*other props*/ };

user.AspnetRoles = new List { role };

context.Users.Add(user);

这会将“Foo”角色添加到“Bar”用户。

于 2012-01-09T01:41:35.100 回答