我有一個Page
類,它與類似的頁面相關聯。每個關聯都有關於關聯的其他信息。這是已被定義爲Page
的表示的類。實體框架代碼與同類的第一個雙重關係
public class Page {
[Key]
public virtual int Id { get; protected set; }
[Required]
[StringLength(32)]
public virtual string Name { get; set; }
[InverseProperty("Page")]
public virtual ICollection<Association> Associations { get; set; }
}
每個頁面都可以與任意數量的其他頁面關聯。這被定義爲源和目標頁面。我不介意這種關聯是單向還是雙向的,在我的特定情況下(我更喜歡雙向關聯,很難)是合理的。這是關聯類..
public class Association {
[Key, Column(Order = 0)]
public virtual int PageId { get; protected set; } // SOURCE
[Required]
public virtual Page Page { get; set; } // SOURCE
[Key, Column(Order = 1)]
public virtual int TargetId { get; protected set; } // TARGET
[Required]
public virtual Page Target { get; set; } // TARGET
[Required]
[StringLength(32)]
public virtual string InformationAboutTheAssociation { get; set; }
}
現在我有以下的背景下...
public class DbCtx : DbContext {
public DbSet<Association> Associations { get; set; }
public DbSet<Page> Pages { get; set; }
}
而問題是,SQL Express的抱怨可能的循環引用(這是不是這樣,但它是過度保護)。如何解決生成的方案以接受所描述的方案?
Introducing FOREIGN KEY constraint 'FK_dbo.Associations_dbo.Pages_TargetId' on table 'Associations' may cause cycles or multiple cascade paths. Specify ON DELETE NO ACTION or ON UPDATE NO ACTION, or modify other FOREIGN KEY constraints.
謝謝!
哪個EF? 4.3,5.0? – 2012-08-02 21:21:13
要麼。我現在使用5.0,但也可以使用4.3。 – 2012-08-02 21:42:22
使用5.0。它在速度部門有所改進。 – amb 2012-08-02 22:01:42