【发布时间】:2011-11-21 18:34:06
【问题描述】:
Entity Framework Code First 可以为以下 POCO 生成 DB。
public class Item {
public int Id { get; set; }
public string Name { get; set; }
}
public class ItemPair {
public int Id { get; set; }
public virtual Item FirstItem { get; set; }
public virtual Item SecondItem { get; set; }
}
我想通过 ID 字段而不是整个“项目”类来建立与第一个和第二个项目的关系。所以:
public class ItemPair {
public int Id { get; set; }
public virtual Item FirstItem { get; set; }
public int FirstItem_Id { get; set; }
public virtual Item SecondItem { get; set; }
public int SecondItem_Id { get; set; }
}
也可以。 编辑:这实际上不起作用。只需生成额外的 FirstItem_Id1 和 SecontItem_Id2 列。
但只需将外键属性更改为 FirstItemId、SecondItemId(不带下划线),如下所示:
public class ItemPair {
public int Id { get; set; }
public virtual Item FirstItem { get; set; }
public int FirstItemId { get; set; }
public virtual Item SecondItem { get; set; }
public int SecondItemId { get; set; }
}
导致以下异常。
{"Introducing FOREIGN KEY constraint 'ItemPair_SecondItem' on table 'ItemPair' may cause
cycles or multiple cascade paths. Specify ON DELETE NO ACTION or ON UPDATE NO ACTION,
or modify other FOREIGN KEY constraints.\r\nCould not create constraint.
See previous errors."}
为什么?我能做些什么来避免这个异常。
【问题讨论】:
-
这个替代方案帮助我更好stackoverflow.com/questions/19373310/…
标签: entity-framework-4.1 ef-code-first