使用Asp.Net Identity DataBase的第一种方法

Gib*_*boK 56 c# asp.net-mvc identity entity-framework

我需要将Asp.Net最新的MVC版本与现有数据库集成,该数据库还有一个String Address列表dbo.AspNetUsers

我需要创建一个ApplicationUser具有属性Address 的实例.

知道怎么做吗?

Gib*_*boK 56

一个可行的解决方案对我有用,基本上我能够将Asp.Net Identity User Profiles与现有数据库集成.

获取Asp.Identity表:

  • 使用身份验证个人帐户创建MVC项目
  • 打开Web.config中DefaultConnection下列出的数据库.它将被调用(aspnet- [timestamp]或类似的东西.)
  • 使用SQL Server Management Studio编写数据库表的脚本(为mdc附加数据库).

或者使用像http://identity.codeplex.com/这样的东西

与现有数据库集成:

  • 将脚本表插入SQL Server Management Studio中的现有数据库.
  • 自定义并添加与ApplicationUser的关系(如有必要).
  • 创建新的Web项目> MVC> DB First Project>使用EF导入DB ....
  • 在IdentityModels.cs中,更改ApplicationDbContext:base("DefaltConnection")以使用项目的DbContext.

现在,您的数据库中的Asp.Identity表在您的应用程序中具有ER模型.

Asp.Identity Profile添加新属性:

  • 启用实体框架代码优先数据库迁移,只需在VS中进入工具包管理器控制台',
  • 执行命令"Enable-Migrations"; 一旦我们启用了数据库迁移,我们就可以继续为UserProfile添加新属性

  • 要添加新属性,请修改IdentityModels.cs文件,例如:


public class ApplicationUser : IdentityUser
{
public string FirstName { get; set; }
public string LastName { get; set; }
public string EmailID { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

添加新迁移

  • 添加属性后,启动程序包管理器控制台并执行以下命令.

    添加迁移"YouMigrationName"

此命令将生成数据库脚本文件,现在执行以下命令以针对数据库运行此脚本文件.

Update-Database
Run Code Online (Sandbox Code Playgroud)

现在,所有新属性将变为同一数据库表中的表字段.

我希望它可以帮助别人,如果你有更好的主意,请告诉我.

  • 如果是数据库优先方法,为什么要使用迁移?我的理解是,迁移用于代码优先方法,以将代码更改应用于数据库 (22认同)
  • 为什么我发现的关于实体表的每次数据库优先讨论都涉及代码? (9认同)

Dan*_*gle 22

我已成功通过Database First与Identity Framework 2.0集成现有数据库.我在这里写了一篇博文,其中使用了ASP.NET MVC 5,Identity Framework 2.0和Visual Studio 2013 Update 2 RTM中的SPA模板.

我希望这可以帮助任何人在他们的旅程中,因为它包含一些我没有在我自己想到的地方没有列出的点.

  • 嗨Daniel,尝试关注您的优秀博客条目(谢谢),但数据库(localdb)必须存在于单独的程序集中.无法让它发挥作用.例如,如何从Web应用程序web.config - | DataDirectory |指向另一个程序集中的数据库 没有任何意义.任何例子? (2认同)

Kon*_*kus 20

在GitHub上看看这些项目:

包括:

  • ASP.NET Identity 2.0的SQL数据库项目模板
  • 实体框架数据库第一提供商
  • 源代码和样本

在此输入图像描述