asp.net-mvc – 使用实体框架4.1创建复合主键
发布时间:2020-12-15 22:33:09 所属栏目:asp.Net 来源:网络整理
导读:我有两个表项目和任务.任务是项目的弱实体,因此任务的复合主键是(ProjectId TaskID).我尝试使用以下代码,但它给出了一个错误 Cannot define PRIMARY KEY constraint on nullable column in table ‘Tasks’. 我正在使用代码优先的方法来创建表,我确保列不是n
我有两个表项目和任务.任务是项目的弱实体,因此任务的复合主键是(ProjectId& TaskID).我尝试使用以下代码,但它给出了一个错误
我正在使用代码优先的方法来创建表,我确保列不是null,但它仍然无法正常工作.请帮忙! public class Task { [ForeignKey("ProjectId")] public Project Project { get; set; } [Required] public int ProjectId { get; set; } //[Key,Column(Order = 1)] [Required] [DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)] public virtual int TaskID { get; set; } ... } //using FluentAPI protected override void OnModelCreating(DbModelBuilder modelBuilder) { base.OnModelCreating(modelBuilder); modelBuilder.Entity<Task>().HasRequired(p => p.Project); modelBuilder.Entity<Task>().HasKey(p => new { p.ProjectId,p.TaskID }); modelBuilder.Entity<Project>() .HasRequired(e=> e.Employee) .WithMany() .WillCascadeOnDelete(false); } 解决方法
遇到这个寻找别的东西,有点晚了,但这对我来说很好地映射到一个复合键
[Key,Column(Order=1) ] public int KeyId { get; set; } [Key,Column(Order = 2)] public int Key1Id { get; set; } [Key,Column(Order = 3)] public int Key2Id { get; set; } [Key,Column(Order = 4)] public int Key3Id { get; set; } 希望这有助于某人. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp.net – 可以使用__doPostBack()吗?
- 如何在IIS / ASP.Net中创建长期存在的对象?
- asp.net core 系列 9 三种运行环境和IIS发布
- asp.net-mvc – Razor模板,views和angular.js
- asp.net 解析json数据
- msbuild – 通过TFS 2015部署ASP.NET 5(vNext)
- asp.net – 会员更改密码
- ASP.NET(.asmx)webservices中的客户端IP地址
- asp-classic – 我使用经典的ASP,IIS6和WinServer 2003 R2获
- asp.net-mvc – 使用Session进行Asp.net MVC3长轮询