【发布时间】:2012-03-14 22:31:50
【问题描述】:
我首先在 EF 4.3 代码中创建由外键组成的复合键时遇到问题。我想通过数据注释来解决这个问题。我找不到正确的数据注释,表明 EventID 是事件的外键,并且是 EventVote 表中主键的一部分。我如何做到这一点
public class EventVote
{
[Key, Column(Order = 0)]
[ForeignKey("Event")]
public int EventID { get; set; }
[Key, Column(Order = 1)]
[ForeignKey("User")]
public int UserID { get; set; }
[Required]
public DateTime VoteTime { get; set; }
[Required]
public bool Vote { get; set; }
public virtual Event Event { get; set; }
public virtual User User { get; set; }
}
错误 在表“EventVotes”上引入 FOREIGN KEY 约束“EventVote_User”可能会导致循环或多个级联路径。指定 ON DELETE NO ACTION 或 ON UPDATE NO ACTION,或修改其他 FOREIGN KEY 约束。 无法创建约束。查看以前的错误。
【问题讨论】:
-
错误信息,或者说明什么实际上不起作用?
-
发布
Event和User类的代码 -
更新了答案,其中包含可能有帮助的链接。数据注释是有限的,有时您必须使用 FluentAPI。有一个部分专门处理您遇到的错误。
标签: c# ef-code-first code-first