我不是" MacGyver",所以我需要帮助来解决弗兰肯斯坦的表如何使用EF中的循环参考作品。 (facepalm)这是一个关于postgresql的旧数据库,我需要它在新的网络系统(!!!)上工作。所以,我想我在这里需要一个简单的操纵:)
int id PK;
varchar描述;
varchar other_field
......
int idTableB FK(参考表B键)
int id PK
varchar fieldX
双fYndY
......
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的另一个对象,反过来引用了任何ModelB对象,可能与引用它相同...... OMG!< / p>
是的!我正在使用DatabaseFirst。这是一个简单但非常接近现实的例子。 这里有魔术师帮我解决吗?谢谢你们。
答案 0 :(得分:0)
只需在dbcontext
上设置它db.Configuration.ProxyCreationEnabled = false;
答案 1 :(得分:0)
在上下文的构造函数中,验证以下行:
Database.AutoTransactionsEnabled = false;
如果该行处于活动状态,请注释并重试。