扩展的ASP.NET用户未保存到数据库中

时间:2015-10-10 08:54:40

标签: c# asp.net .net asp.net-mvc entity-framework

我想建立一个有教育目的的音乐网站/。我想使用ASP.NET Identity User,但我还想添加一些额外的属性。我先做代码。所以我创建了一个Model层,我正在扩展身份用户:

public class User : IdentityUser
{
    //Some extra data that I want to add goes here

    public async Task<ClaimsIdentity> GenerateUserIdentityAsync(UserManager<User> manager, string authenticationType)
    {
        var userIdentity = await manager.CreateIdentityAsync(this, authenticationType);
        return userIdentity;
    }
}

到目前为止一切顺利。接下来,我使用Repository和Unit Of Work模式实现了我的数据层,其中最重要的是我的服务层/ MVC项目/。我跑了它,我注册了一个用户,我被重定向为该用户。我虽然一切都还好,所以我决定检查我的数据库。我看到了ASP.NET提供的表,但它们都是空的。我试图注册同一个用户,我注意到有一个用户已经收到了这封电子邮件。

我检查了连接字符串,一切都很好。我的想法已经不多了......

enter image description here

我在某处完全错了,但我能找到它。如果有人想看代码,我会附上我的项目。

Source code

2 个答案:

答案 0 :(得分:0)

所以会发生什么,是的,它被插入到数据库中。但是,数据表未刷新。我用来解决这个问题的是这样的:

   private void showData()
    {
        string conString = @"your;connection;string;"

        SqlDataAdapter sda;
        DataTable dt;


        SqlConnection con = new SqlConnection(conString);
        sda = new SqlDataAdapter("SELECT * FROM yourTableName", con);


        dt = new DataTable();
        sda.Fill(dt);
        dataGridView1.DataSource = dt;
    }

然后在加载时或单击刷新按钮时运行showData()。

在设计我自己的应用程序时遇到了同样的问题。希望这会有所帮助。

答案 1 :(得分:0)

好的,所以我发现整个画面出了什么问题。在模型中有一个ApplicationDbContext。

public class ApplicationDbContext : IdentityDbContext<ApplicationUser>
{
    public ApplicationDbContext()
        : base("DatabaseConnection", throwIfV1Schema: false)
    {
    }

    public static ApplicationDbContext Create()
    {
        return new ApplicationDbContext();
    }
}

默认情况下,在DefaultConnection上设置连接,因此它不能按我的意思工作。