Tôi có hai bảng Projects
và Task
. Task
là một thực thể yếu của một dự án, do đó, khóa tổng hợp của nhiệm vụ là (ProjectId & TaskID
). Tôi đã thử làm như vậy với mã sau đây, nhưng nó đưa ra một lỗiTạo khóa chính kết hợp bằng khung tổ chức 4.1
Không thể xác định hạn chế KEY CHÍNH trên cột có thể vô hiệu trong bảng 'Tác vụ'.
Tôi đang sử dụng cách tiếp cận mã đầu tiên để tạo bảng và tôi đã đảm bảo rằng cột không rỗng, nhưng nó vẫn không hoạt động. Hãy giúp tôi!
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);
}
dưới đây là hướng dẫn xác nhận việc giải quyết này: http://www.entityframeworktutorial.net/code-first/key-dataannotations-attribute-in-code-first.aspx – CodeToad