【发布时间】:2019-10-17 12:38:24
【问题描述】:
我不是“MacGyver”,所以我需要帮助,了解如何使用 EF 中的循环引用工作来处理科学怪人的表格。 (facepalm) 这是 postgresql 上的一个旧数据库,我需要它在一个新的 web 系统上工作 (!!!)。所以,我想我在这里需要一个杰瑞操纵:)
表 A
int id PK;
varchar 描述;
varchar other_field
...
int idTableB FK(参考表 B 键)
表 B
int id PK
varchar 字段X
双重恶魔
...
int idTableA FK(参考表 A 键)
如果我尝试使用具有 ForeignKey 属性的模型,则会在附加图像上得到错误。
出现这些错误的模型如下:
型号
[table("table_a")]
public class ModelA {
[Key, Column("id")]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int Id { get; set;]
[Column("idTableB")]
public int IdTableB { get; set; }
[ForeignKey("IdTableB")]
public virtual ModelB Model_B { get; set; }
}
[table("table_b")]
public class ModelB {
[Key, Column("id")]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int Id { get; set;]
[Column("idTableA")]
public int IdTableA { get; set; }
[ForeignKey("IdTableA")]
public virtual ModelA Model_A { get; set; }
}
嗯,ModelA 的一个对象引用了 ModelB 的一个对象,然后又引用了 Model A 的另一个对象,with 又引用了任何 ModelB 对象,可能和引用它一样... OMG!
是的!我正在使用 DatabaseFirst。这是一个简单但非常接近现实的例子。 有哪位魔术师帮我解决这个问题吗?谢谢大家。
【问题讨论】:
-
谢谢@VsevolodGoloviznin,我在搜索中没有找到这个主题。
-
抱歉,该技术没有解决问题 :( “发生了参照完整性约束冲突:当依赖对象未更改时,作为参照完整性约束一部分的主键属性不能更改,除非它是被设置为关联的主体对象。主体对象必须被跟踪并且不能被标记为删除。"
-
感谢@Zakos 但不是主题...
标签: c# asp.net-mvc entity-framework postgresql