ASP.NET MVC 5 Identity 默认表映射修改

protected
override
void OnModelCreating(DbModelBuilder modelBuilder)

{

if (modelBuilder == null)

{

throw
new
ArgumentNullException("modelBuilder");

}

?

var user = modelBuilder.Entity<IdentityUser>()

.ToTable("Users");

user.HasMany(u => u.Roles).WithRequired().HasForeignKey(ur => ur.UserId);

user.HasMany(u => u.Claims).WithRequired().HasForeignKey(uc => uc.UserId);

user.HasMany(u => u.Logins).WithRequired().HasForeignKey(ul => ul.UserId);

user.Property(u => u.UserName)

.IsRequired()

.HasMaxLength(256)

.HasColumnAnnotation("Index", new
IndexAnnotation(new
IndexAttribute("UserNameIndex") { IsUnique = true }));

?

user.Property(u => u.Email).HasMaxLength(256);

?

modelBuilder.Entity<IdentityUserRole>()

.HasKey(r => new { r.UserId, r.RoleId })

.ToTable("UserRoles");

?

modelBuilder.Entity<IdentityUserLogin>()

.HasKey(l => new { l.LoginProvider, l.ProviderKey, l.UserId })

.ToTable("UserLogins");

?

modelBuilder.Entity<IdentityUserClaim>()

.ToTable("UserClaims");

?

var role = modelBuilder.Entity<IdentityRole>()

.ToTable("Roles");

role.Property(r => r.Name)

.IsRequired()

.HasMaxLength(256)

.HasColumnAnnotation("Index", new
IndexAnnotation(new
IndexAttribute("RoleNameIndex") { IsUnique = true }));

role.HasMany(r => r.Users).WithRequired().HasForeignKey(ur => ur.RoleId);

}

时间: 2024-10-10 06:18:16

ASP.NET MVC 5 Identity 默认表映射修改的相关文章

asp.net MVC中控制器获取表单form提交的数据之实体类数据

第一次写记录文章,难免有不足之处:欢迎指出. 1.新建一个mvc项目如: 2.新建一个Test.cs 注意get,set方法不能简写 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 using System; using System.Collections.Generic; using System.Linq; usi

ASP.NET MVC 5 - 给电影表和模型添加新字段

原文:ASP.NET MVC 5 - 给电影表和模型添加新字段 在本节中,您将使用Entity Framework Code First来实现模型类上的操作.从而使得这些操作和变更,可以应用到数据库中. 默认情况下,就像您在之前的教程中所作的那样,使用 Entity Framework Code First自动创建一个数据库,Code First为数据库所添加的表,将帮助您跟踪数据库是否和从它生成的模型类是同步的.如果他们不是同步的,Entity Framework将抛出一个错误.这非常方便的在

ASP.NET MVC 4 (一)路径映射

正如ASP.NET MVC名字所揭示的一样,是以模型-视图-控制设计模式构建在ASP.NET基础之上的WEB应用程序,我们需要创建相应的程序类来协调处理,完成从客户端请求到结果相应的整个过程: VS2012中一个典型的MVC工程结构是这样的: Controllers文件夹下存放控制类,Models文件下是业务数据模型类,Views文件下则是类似于aspx的视图文件.在传统ASP.NET form的应用程序中,客户端的请求最后都映射到磁盘上对应路径的一个aspx的页面文件,而MVC程序中所有的网络

Asp.net MVC 基于Area的路由映射

对于一个较大规模的Web应用,我们可以从功能上通过Area将其划分为较小的单元.每个Area相当于一个独立的子系统,具有一套包含Models.Views和Controller在内的目录结构和配置文件.一般来说,每个Area具有各自的路由规则(URL模版上一般会体现Area的名称),而基于Area的路由映射通过AreaRegistration进行注册. 一.创建Areas 右键工程 -> 添加->区域 添加后生成一套包含Models.Views和Controller在内的目录结构和配置文件:只是

ASP.NET MVC 4 (十三) 基于表单的身份验证

在前面的章节中我们知道可以在MVC应用程序中使用[Authorize]特性来限制用户对某些网址(控制器/控制器方法)的访问,但这都是在对用户认证之后,而用户的认证则依然是使用ASP.NET平台的认证机制. ASP.NET提供Windows和Forms两种身份验证,前者主要用于Intranet上域环境内,后者则更多的应用于Internet,这里我们只讨论后者.先从最简单的例子开始,我们在web.config中配置Forms认证方式: ... <authentication mode="For

Asp.net Mvc Ajax.BeginForm提交表单

之前Mvc中一直用Html.BeginForm提交表单,即如下: @using (Html.BeginForm("Add", "News", FormMethod.Post, new { enctype = "multipart/form-data" })) { <table> <tr> <td><span style="color:red">*</span><

asp.net mvc 错误路由默认配置

问题描述:默认情况下mvc已经将路由参数设置配置好了,这里就不在讲解,请到园子搜索,有很多这方面相关的文章.这里讲述的是,一个MVC项目中,我们输入一个错误的URL,或者根本不存在的URL,如:http://localhost:6224/jeutcvmg/jfidjfijdif,出现一个很难看,非常不友好的错误页面.希望它跳转到指定页面.默认主页等,且达到全局响应的效果. 关键词:customErrors 解决详解 1.打开<web.config>,找到<system.web>节点

ASP.NET MVC 设置区域默认定向

public override void RegisterArea(AreaRegistrationContext context) { context.MapRoute( "m_default", "m/{controller}/{action}/{id}", //设置区域下的默认的跳转 new { Controller="Home",action = "Index", id = UrlParameter.Optional

ASP.NET MVC 入门4、Controller与Action

原帖地址:http://www.cnblogs.com/QLeelulu/archive/2008/10/04/1303672.html Controller是MVC中比较重要的一部分.几乎所有的业务逻辑都是在这里进行处理的,并且从Model中取出数据.在ASP.NET MVC Preview5中,将原来的Controller类一分为二,分为了Controller类和ControllerBase类.Controller类继承自ControllerBase类,而ControllerBase实现是了