ASP.NET迁移中的Discriminator列是什么?
|
我需要在ASP.NET MVC 5中为角色身份表添加一个额外的字段. 我使用迁移. 我添加了角色的扩展名,如: public class ApplicationRole : IdentityRole
{
public ApplicationRole() : base() { }
public ApplicationRole(string name)
: base(name)
{
}
public virtual Project Project { get; set; }
}
我的迁移课程是: public partial class ProjectToIdentity : DbMigration
{
public override void Up()
{
CreateTable(
"dbo.Projects",c => new
{
ID = c.Int(nullable: false,identity: true),ProjectName = c.String(maxLength: 100),})
.PrimaryKey(t => t.ID);
AddColumn("dbo.AspNetRoles","Discriminator",c => c.String(nullable: false,maxLength: 128));
AddColumn("dbo.AspNetRoles","Project_ID",c => c.Int());
CreateIndex("dbo.AspNetRoles","Project_ID");
AddForeignKey("dbo.AspNetRoles","dbo.Projects","ID");
}
public override void Down()
{
DropForeignKey("dbo.AspNetRoles","dbo.Projects");
DropIndex("dbo.AspNetRoles",new[] { "Project_ID" });
DropColumn("dbo.AspNetRoles","Project_ID");
DropColumn("dbo.AspNetRoles","Discriminator");
DropTable("dbo.Projects");
}
}
问题是 – 什么是Discriminator专栏?我的模型中没有这样的专栏.为什么迁移工具会添加此字段以及它具有哪些目标? 解决方法嗯,快速回答理解,或者至少使其更清晰.正如Jasen所说,您可以在http://weblogs.asp.net/manavi/inheritance-mapping-strategies-with-entity-framework-code-first-ctp5-part-1-table-per-hierarchy-tph或任何其他链接上阅读有关每层结构的表(TPH).但是,说实话,从第一次开始就不那么容易理解. 这是一个快速回答: >尝试使用继承自IdentityRole的ApplicationRole(已发布的类)来创建新角色 如您所见 – 新记录在“歧视”列中包含“ApplicationRole”.所以说 – 该列包含继承IdentityRole的新类的名称. 如图所示,ApplicationRole Discriminator仅出现在由类创建的记录中,称为继承IdentityRole的ApplicationRole. (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net-mvc – 可以在ASP.NET MVC中本地化URL /路由吗?
- asp.net – 如何在.net中读取Elastic Beanstalk环境属性?
- asp.net-core – 当前的运行时目标框架与项目不兼容
- asp.net – Chrome在成功的文件下载(200状态)上显示“已取消
- Winforms,ASP.NET,WPF的语法突出显示文本框
- asp.net – 如何防止CPU占用100%,因为iis中的工作进程
- 修改FCKEditor实现将图片、文件等保存到数据库
- asp.net-mvc – Asp.net MVC 3验证在TryUpdateModel中排除了
- asp.net-mvc – ASP.NET MVC母版页
- iis-7 – Rotativa PDF生成本地工作,但不在IIS 7上
