我有2種型號,任務,並提供:EF代碼首先要一對多的關係
public class Task
{
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int id { get; set; }
[Key]
public Guid TaskId { get; set; }
public virtual ICollection<Offer> Offers { get; set; }
}
public class Offer
{
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int id { get; set; }
[Key]
public Guid OfferId { get; set; }
public Guid TaskId { get; set; }
[ForeignKey("TaskId")]
public virtual Task Task { get; set; }
}
一個任務可以有很多的優惠,以及1個報價有一個任務,我認爲這shopuld是相當直接的,但我遇到了不同的麻煩,谷歌上搜索了幾個小時後,我發現我不得不使用流利的映射,這是我做的:
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
base.OnModelCreating(modelBuilder);
modelBuilder.Entity<Offer>().HasRequired(p => p.Task).WithMany(c => c.Offers).HasForeignKey(e=>e.TaskId2).WillCascadeOnDelete(false);
}
,但現在我不能擺脫這種錯誤的:
The ALTER TABLE statement conflicted with the FOREIGN KEY constraint "FK_dbo.Offers_dbo.Tasks_TaskId". The conflict occurred in database "test", table "dbo.Tasks", column 'TaskId'
我在做什麼錯?
我同意你不應該需要流利的API來做一個簡單的一對多。 dataannotations配置中的「我碰到了不同的麻煩」是什麼意思?另外,什麼是TaskId2? – danludwig