我承认使用MVC3 / EF4是一件轻而易举的事情:模型的工作效果比我希望的要好(尽管我总是对构造/框架有所帮助,这些事情会让事情发生在幕后,但是我很老了学校的灰胡子),一切顺利,直到我遇到这个问题。
我见过很多与此问题相关的帖子,但在我的案例中我不知道如何解决它。每个表(实体)都有一个employeeID字段,它可以(通常是)每个表中大多数记录的不同雇员。显然,DbContext中只有一个表可以有一个“虚拟员工员工”(或者我选择命名的任何员工),或者我得到了可怕的“周期性参考错误”。理想情况下,我希望所有三个表都能拥有它,以便我可以轻松访问员工姓名。我可能必须覆盖OnModelCreating(),但那个(流畅的API)完全脱离了我的联盟。任何EF大师都在那里????
Models:
class meeting{
int meetingID; //key
string description {get;set;}
int employeeID {get;set;} // who scheduled
public virtual employee employee {get;set;}
public virtual ICollection<agenda> agendas {get;set;}
}
class agenda{
int agendaID {get;set;} // key
int employeeID {get;set;} // initiator
public virtual employee employee {get;set;}
public virtual ICollection<actionItem> actionItems {get;set;}
}
class actionItem{
int actioItemID {get;set;} //key
string description {get;set;}
int employeeID {get;set;} // action item lead
public virtual employee employee {get;set;}
}
class employee{
int employeeID {get;set;}//key
string name {get;set;}
}
context:
public class meetings:DbContext{
public DbSet<meeting> meetings {get;set;}
public DbSet<agenda> Agendas
public DbSet<actionItem> actionItems{get;set;}
}
答案 0 :(得分:3)
我假设您在模型序列化时遇到此错误。大多数人使用第二组模型从EF模型中抽象出来,但是如果你想坚持使用这些模型,请使用这个答案的方法来摆脱你的周期性参考问题:
EF 4.1 - Code First - JSON Circular Reference Serialization Error