我在配置模型以不級聯刪除時遇到問題。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(假);' –