如何使用简单成员资格

时间:2015-10-14 20:20:53

标签: asp.net-mvc code-first simplemembership

我想自定义我的用户个人资料表。这是我的主要需求所以我将usersContext Dbcontext更改为这样的内容:

    public class UsersContext : DbContext
    {
    public UsersContext()
        : base("DefaultConnection")
    {
    }

    public DbSet<UserProfile> UserProfiles { get; set; }
    public DbSet<Post> Posts { get; set; }
    public DbSet<PostComment> PostComments { get; set; }
}

[Table("UserProfiles")]
public class UserProfile
{
    public UserProfile()
    {
        this.PostComments = new HashSet<PostComment>();
        this.Posts = new HashSet<Post>();
    }
    [Key]
    [DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)]
    public int UserId { get; set; }
    public string UserName { get; set; }
    public string AvatarExt { get; set; }
    public virtual ICollection<PostComment> PostComments { get; set; }
    public virtual ICollection<Post> Posts { get; set; }
}

我的InitializeSimpleMembershipAttribute.cs类看起来像这样:

   private class SimpleMembershipInitializer
    {
        public SimpleMembershipInitializer()
        {
            Database.SetInitializer<UsersContext>(null);

            try
            {
                using (var context = new UsersContext())
                {
                    if (!context.Database.Exists())
                    {
                        // Create the SimpleMembership database without Entity Framework migration schema
                        ((IObjectContextAdapter)context).ObjectContext.CreateDatabase();
                    }
                }

                WebSecurity.InitializeDatabaseConnection("DefaultConnection", "UserProfile", "UserId", "UserName", autoCreateTables: true);
            }
            catch (Exception ex)
            {
                throw new InvalidOperationException("The ASP.NET Simple Membership database could not be initialized. For more information, please see http://go.microsoft.com/fwlink/?LinkId=256588", ex);
            }
        }

我面临的问题是它创建了两个userProfile表;一个是单数形式,即UserProfile,另一个是复数形式,即名称UserProfiles表。** 1.我想在数据库中初始化简单的成员资格表以进行身份​​验证,以便我可以将它们用于登录和注册目的。 2.我是否必须在我的解决方案file.one中使用两个dbcontext来初始化简单的成员资格相关表,然后使用其他Dbcontext,我应该自定义我的数据库,以便在迁移的帮助下拥有更多的表。 3.如果我使用两个dbContext,在这种情况下,我还必须自定义用户配置文件表。那么,我应该如何制作代码,以便只使用usersDbContext在数据库中创建一个UserProfiles表。

1 个答案:

答案 0 :(得分:0)

您在项目的其他项目模块中使用的方法是什么? Db - First或Code-First如果你使用的是DB-First方法那么肯定会有两个连接字符串一个用于edmx数据实体,一个用于成员资格连接。