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