Ric*_*d77 7 asp.net-mvc asp.net-identity
我正在尝试在外部认证服务(C#)上阅读本教程.我需要一些初步的解释才能继续前进.查看发布MVC5的默认模板,我看到:
// You can add profile data for the user ...
public class ApplicationUser : IdentityUser
{
public string HomeTown { get; set; }
public DateTime? BirthDate { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
如果我想将其称为User而不是ApplicationUser,该怎么办?也许我想添加导航属性,以便我可以与其他模型建立关系?另外,当我查看表时,名称是AspNetUsers而不是ApplicationUser.最后,如果我想使用自己的上下文怎么办?
谢谢你的帮助.
Lin*_*Lin 12
1)如果我想将其称为User而不是ApplicationUser,该怎么办?
您可以更改为所需的任何名称,只需确保将ApplicationUser替换为名称即可.
2)也许我想添加导航属性,以便我可以与其他模型建立关系?
如果您有类调用地址,则要将addressId添加为外键,请参阅以下内容:
public class Address
{
public int Id { get; set; }
public string Street { get; set; }
}
public class User : IdentityUser
{
public string HomeTown { get; set; }
public DateTime? BirthDate { get; set; }
public int AddressId { get; set; }
[ForeignKey("AddressId")]
public virtual Address Address { get; set; }
}
public class ApplicationDbContext : IdentityDbContext<User>
{
public ApplicationDbContext()
: base("DefaultConnection")
{
}
public DbSet<Address> Addresses { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
3)当我查看表时,名称是AspNetUsers而不是ApplicationUser.
ASP.NET Identity继承自ASP.NET成员资格系统.当您使用默认模板AspNetUsers和AspNetUserRoles等注册新用户时,默认情况下会创建这些表.您可以通过修改IdentityModel.cs来修改这些表名.有关更多详细信息,请查看以下链接:
使用Visual Studio 2013 ASP.NET标识时,如何更改表名?
4)如果我想使用自己的上下文怎么办?
您可以创建自己的DBContex,MVC 5允许您拥有多个DBContext,例如ApplicationDbContext和DataDbContext(自定义DbContext).ApplicationDbContext通常包含ASP.NET Membership数据表.DataDbContext通常包含与用户无关的数据表.
public class Blog
{
public int BlogId { get; set; }
public int Title { get; set; }
}
public class MyDbContext : DbContext
{
public MyDbContext()
: base("DefaultConnection")
{
}
public DbSet<Blog> Blogs { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
注意:您可能需要使用EF迁移,请参阅此处的详细信息:
| 归档时间: |
|
| 查看次数: |
5870 次 |
| 最近记录: |