我有一些 POCO 类,它们通常可以分为两组,例如:
public class Student
{
public Student()
{
this.Courses = new List<Course>();
this.Clubs = new List<Club>();
}
public int Id { get; set; }
public virtual ICollection<Course> Courses { get; set; }
public virtual ICollection<Club> Clubs { get; set; }
}
以及相应的 Course 和 Club 类,它们与其他类都有自己的关系。
问题是,这两个组很大,它们都包含很多类,每个都是一个工作单元,就像学生课程管理单元一样,它会提供与课程相关的任何功能;和俱乐部管理单元,将提供功能。所以我不打算将它们放在一个 DbContext 中。
有一些要求需要从俱乐部获得学生然后检索其课程信息。我现在正在做的是使用我从俱乐部单元获得的学生 ID 在课程单元中进行另一个查询。效果很好,但我希望让它更简单,比如
foreach(var student in club.Students){
ClubContext.Detach(student);
CourseContext.Attach(student);
foreach(var c in student.Courses){
...
}
}
但我有一些这样的例外:
已经为对象层类型“POCOTest.Models.Student”生成了一个代理类型。当 AppDomain 中的两个或多个不同模型映射相同的对象层类型时,就会发生这种情况。
这可能吗?如果是这样,如何?谢谢~