我从不同的问题中提取(下面列出我提出的问题)。
我想做五件事,据我从这些问题和答案中可以看出......所有这一切都可以在我的OnModelCreating方法中完成。
前言:我正在使用Asp.Net Identity 1.1-alpha的最新夜间位
我想使用“UserId”代替Id作为我的属性 AspNetUsers表中的用户标识。我明白这会涉及到 在OnModelCreating期间使用“HasColumnName”。
我想使用Guid(uniqueidentifier)作为我的数据类型 UserId(而不是字符串)。我明白这涉及到使用我的 拥有IUser类和IUserStore等的POCOS,如Hao Kung所示 在他的回答中......
How to change type of id in Microsoft.AspNet.Identity.EntityFramework.IdentityUser
How can I change the table names when using Visual Studio 2013 ASP.NET Identity?
Create ASP.NET Identity tables using SQL script
因此,基于以上内容...有人可以为我提供OnModelCreating方法,该方法将相应地创建这些Identity表,其中UserId作为Guid(uniqueidentifier)类型用户的Id列,在具有自定义名称的表中,具有适当的外键关系,以及在FirstName和LastName的ApplicationUser上有两个附加属性吗?
答案 0 :(得分:0)
我相信你可能会对解决方案过于线性地认为可以一次性完成。
我会建议如下:
实现您自己的MembershipProvider并覆盖方法,以使用您希望与用户交互的确切表格和逻辑。如果这是ASP.NET MVC 4或更新的实现,您可能需要查看较新的SimpleMembership实现,而不是实现ExtendedMembershipProvider。默认情况下,SimpleMembership有一个很好的UserProfile系统,允许您添加FirstName,LastName和其他自定义属性。
此外,如果您使用的是Entity Framework,列表中的某些内容可以独立于此实现完成。如果您首先使用代码,则可以通过将[Key]属性添加到与此类似的属性UserId来标记模型的主键。如果表名不是POCO的标准复数形式,也可以使用[Table(String name)]作为表名。不要忘记包含对System.ComponentModel.DataAnnotations的引用。
[Table("CustomUsers")]
public class User
{
[Key]
public Guid UserId { get; set; }
}
编辑:Here是另一个q / a,其中包含许多与实现您自己的MembershipProvider相关的链接。
答案 1 :(得分:0)
正确答案来自SO Post。他不是那个特定问题的接受答案,但是@pwdst发布了一个答案,其中包括我修改过的OnModelCreating,就像我在这里要求的那样。上周我请他在这里发帖,所以我可以接受他的答案,但他没有这样做......因此我正在回答自己,并指示你his answer here。