我在配置模型以不级联删除时遇到问题。EF流利的API c#级联删除问题
modeL。
public class Hit
{
public int Id { get; set; }
// Foreign Key
public int AccountId { get; set; }
// Foreign Key
public int LeadId { get; set; }
//navigation properties
[ForeignKey("LeadId")]
public Lead lead { get; set; }
//navigation properties
[ForeignKey("AccountId")]
public Account account { get; set; }
}
流利的API:
modelBuilder.Entity<Hit>()
.HasRequired(t => t.lead)
.WithMany()
.HasForeignKey(t => t.LeadId)
.WillCascadeOnDelete(false);
当我尝试迁移它,我得到这个在打造成表:
.ForeignKey("dbo.Accounts", t => t.AccountId, cascadeDelete: true)
.ForeignKey("dbo.Leads", t => t.Lead_Id)
.ForeignKey("dbo.Leads", t => t.LeadId, cascadeDelete: true)
我想达到两个线索和账户什么这是在迁移脚本:
.ForeignKey("dbo.Leads", t => t.LeadId)
我该如何去做这件事?它prbably容易,但我是新来的这一切:(
编辑1:
我已将此添加到流畅的API:
modelBuilder.Entity<Lead>().HasMany(i => i.Hits).WithOptional().HasForeignKey(s=> s.LeadId).WillCascadeOnDelete(false);
从删除cascadelete:.ForeignKey(“DBO。信息”,T => t.LeadId)
不过,我也想从中删除:
.ForeignKey("dbo.Accounts", t => t.AccountId, cascadeDelete: true)
的易使如果将其从迁移脚本中删除。但我想用FLuent API或其他方法来做到这一点。
任何想法?
如果您已经使用流利的API映射你的FKS,我建议你从你的导航属性中删除'[ForeignKey的]'属性。 –
嗨弗洛里安。关于如何使用流畅的API解决我的“编辑1”的想法? – jan
你可以做这样的事情:'modelBuilder.Entity().HasOptional(M => m.account).HasForeignKey(M => m.AccountId)。WillCascadeOnDelete(假);' –