Я признаю, что использование 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;}
}