asp.net-mvc – 使用实体框架4.1创建复合主键
发布时间:2020-05-24 07:56:23 所属栏目:asp.Net 来源:互联网
导读:我有两个表项目和任务.任务是项目的弱实体,因此任务的复合主键是(ProjectId TaskID).我尝试使用以下代码,但它给出了一个错误 Cannot define PRIMARY KEY constraint on nullable column in table ‘Tasks’. 我正在使用代码优先的方法来创建表,我确保列不是nu
|
我有两个表项目和任务.任务是项目的弱实体,因此任务的复合主键是(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-core – 编译netcoreapp1.0,代码包含#if!NETSTAND
- asp.net – 如何使用SignalR的跨域连接(CORS – 访问控制允
- asp.net-mvc – 使用一组复杂数据类型调用UpdateModel会重置
- asp.net – 浏览器关闭后的身份验证/会话cookie删除
- asp.net上传文件到数据库的解决方案
- asp.net – 在渲染到位图之前缩放WPF内容
- asp.net-mvc-4 – 与TinyMCE绑定的MVC4
- 对ASP.Net组件套件有什么好评
- 在预编译asp.net网站 – 是否重要?
- asp.net – Visual Studio的访问修饰符下拉列表选项被禁用资
推荐文章
站长推荐
热点阅读
