我有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