AspNet如何识别我的模型



我正在尝试学习关于外部身份验证服务(C#)的本教程。我需要一些初步的解释。查看MVC5的默认模板,我看到了以下内容:

// You can add profile data for the user ...
public class ApplicationUser : IdentityUser
{
public string HomeTown { get; set; }
public DateTime? BirthDate { get; set; }
}

如果我想将其称为User而不是ApplicationUserspNetUsers,而不是ApplicationUser。最后,如果我想使用我自己的上下文呢?

谢谢你的帮助。

1)如果我想称它为User而不是ApplicationUser怎么办?

您可以更改为所需的任何名称,只需确保将ApplicationUser替换为该名称即可。

2)也许我想添加一个导航属性,这样我就可以建立和其他模特的关系?

如果你有一个类调用Address,你想添加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; }
}

3)此外,当我查看该表时,名称为AspNetUsers,而不是ApplicationUser。

ASP.NET标识继承自ASP.NET成员系统。注册新用户时使用默认模板AspNetUsers和AspNetUserRoles等。这些表是默认创建的。您可以通过修改IdentityModel.cs来修改这些表名。有关更多详细信息,请查看以下链接:

使用Visual Studio 2013 ASP.NET Identity时,如何更改表名?

4)如果我想使用自己的上下文怎么办?

您可以创建自己的DBContex,MVC 5允许您拥有多个DBContext,如ApplicationDbContext和DataDbContext(自定义DBContext)。ApplicationDbContext通常包含ASP.NET成员身份数据表。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; }
}

注意:您可能需要使用EF迁移,请参阅此处的详细信息:

ASP.Net身份自定义用户配置文件

相关内容

  • 没有找到相关文章

最新更新