我正在使用Visual Studio 2013的发布版本(RTM,而不是RC)(从MSDN 2013-10-18下载),因此使用AspNet.Identity的最新版本(RTM).当我创建一个新的Web项目时,我选择"个人用户帐户"进行身份验证.这将创建以下表:
当我注册一个新用户(使用默认模板)时,会创建这些表(如上所列),并且AspNetUsers表中插入了一条记录,其中包含:
此外,通过向"ApplicationUser"类添加公共属性,我已成功向AspNetUsers表添加了其他字段,例如"FirstName","LastName","PhoneNumber"等.
这是我的问题.有没有办法更改上面表格的名称(首次创建时)或者它们是否总是以AspNet我上面列出的前缀命名?如果表名可以不同的名称,请解释如何.
- 更新 -
我实施了@Hao Kung的解决方案.它确实创建了一个新表(例如我称之为MyUsers),但它仍然创建了AspNetUsers表.目标是用"MyUsers"表替换"AspNetUsers"表.请参阅下面的代码和创建的表的数据库图像.
我实际上想AspNet用我自己的名字替换每个表...例如,MyRoles,MyUserClaims,MyUserLogins,MyUserRoles和MyUsers.
我如何实现这一目标,最终只有一组表格?
public class ApplicationUser : IdentityUser
{
public string FirstName { get; set; }
public string LastName { get; set; }
public string Address1 { get; set; }
public string Address2 { get; set; }
public string City { get; set; }
public string State { get; set; }
public string PostalCode { …Run Code Online (Sandbox Code Playgroud) 我使用Database First创建了一个MVC Web App.ASP.Net Identity数据的默认数据库是本地数据库.我需要将其更改为已存在的sql server db.我到处寻找.关于此的唯一文章似乎涉及Code First方法.我需要DB第一种方法.我已尝试在控制台中启用PM - 启用迁移.我最终得到了这个错误:
"不支持从使用Database First或Model First创建的DbContext创建DbModelBuilder或编写EDMX.只能从不使用现有DbCompiledModel创建的Code First DbContext获取EDMX."
我还简单地将我的Web配置中的"默认连接"连接字符串更改为指向我的Sql Server,但仍然没有.
有没有人能指出我在运行我的应用程序而不是本地数据库时如何在sql server数据库中创建asp.net身份表的正确方向?
asp.net-mvc entity-framework ef-database-first asp.net-identity
我从不同的问题中汲取灵感(在我提出问题时在下面列出)。
我想做五件事,据我所知,从这些问题和答案中可以看出……所有这些都可以在我的 OnModelCreating 方法中完成。
前言:我正在为 Asp.Net Identity 1.1-alpha 使用最新的夜间位
我想在 AspNetUsers 表中使用“UserId”而不是 Id 作为我的用户 Id 的属性。我知道这将涉及在 OnModelCreating 期间使用“HasColumnName”。
我想使用 Guid(唯一标识符)作为我的 UserId(而不是字符串)的数据类型。我知道这涉及将我自己的 POCOS 用于 IUser 类和 IUserStore 等,正如 Hao Kung 在他的回答中指出的那样......
如何更改 Microsoft.AspNet.Identity.EntityFramework.IdentityUser 中的 id 类型
使用 Visual Studio 2013 ASP.NET Identity 时如何更改表名?
使用 SQL 脚本创建 ASP.NET Identity 表
因此,基于上述...有人可以向我提供 OnModelCreating 方法,该方法将相应地创建这些身份表,将 UserId 作为 Guid(唯一标识符)类型的用户的 Id 列,在具有自定义名称的表中,使用适当的外键关系,以及 ApplicationUser 上的 FirstName 和 LastName 的两个附加属性?