0
私は、作業パターンのリポジトリとユニットを使用していますし、リポジトリと作業単位:エンティティ無負荷外部キーの値に基づいて
CourseInstructorエンティティ
[Serializable]
public class CourseInstructor : AuditableEntity
{
#region Primitive Properties
[Required(ErrorMessage = "CourseID is required.")]
[ForeignKey("Course")]
public int CourseID { get; set; }
[Required(ErrorMessage = "StudentID is required.")]
[ForeignKey("Student")]
public int PersonID { get; set; }
#endregion
#region Navigation Properties
public Course Course { get; set; }
public Person Student { get; set; }
#endregion
}
は、次のように私のクラスは、人物団体
[Serializable]
public class Person : AuditableEntity
{
#region Primitive Properties
[Required(ErrorMessage = "LastName is required."), StringLength(50, ErrorMessage = "LastName is too long!")]
public string LastName{ get; set; }
[Required(ErrorMessage = "FirstName is required."), StringLength(50, ErrorMessage = "FirstName is too long!")]
public string FirstName{ get; set; }
[Required(ErrorMessage = "HireDate is required.")]
public DateTime? HireDate{ get; set; }
[Required(ErrorMessage = "EnrollmentDate is required.")]
public DateTime? EnrollmentDate{ get; set; }
#endregion
#region Navigation Properties
public virtual ICollection<CourseInstructor> CourseInstructor{ get; set; }
//Have other navigation properties to some other entities
#endregion
}
コースエンティティ
[Serializable]
public class Course : AuditableEntity
{
#region Primitive Properties
[Required(ErrorMessage = "Title is required."), StringLength(100, ErrorMessage = "Title is too long!")]
public string Title
{get;set;}
[Required(ErrorMessage = "Credits is required.")]
public int Credits
{get;set;}
[Required(ErrorMessage = "DepartmentID is required.")]
public int DepartmentID
{get;set;}
#endregion
#region Navigation Properties
public Department Department { get; set; }
public virtual ICollection<OnlineCourse> OnlineCourses
{get;set;}
public virtual ICollection<OnsiteCourse> OnsiteCourses
{get;set;}
public virtual ICollection<StudentGrade> CourseStudentGrades
{get;set;}
public virtual ICollection<CourseInstructor> CourseInstructor
{get;set;}
#endregion
}
CourseInstructorConfig
public class CourseInstructorConfig : MyProjectConfig<CourseInstructor>
{
public CourseInstructorConfig()
{
base.HasRequired<Course>((CourseInstructor a) => a.Course)
.WithMany((Course c) => c.CourseInstructor)
.HasForeignKey<int>((CourseInstructor d) => d.CourseID);
base.HasRequired<Person>((CourseInstructor w) => w.Student)
.WithMany((Person p) => p.CourseInstructor)
.HasForeignKey<int>((CourseInstructor q) => q.PersonID);
}
}
CourseConfig
public class CourseConfig : MyProjectConfig<Course>
{
public CourseConfig()
{
base.HasRequired<Department>((Course c) => c.Department)
.WithMany((Department d) => d.Courses)
.HasForeignKey<int>((Course cs) => cs.DepartmentID);
}
}
CourseInstructorManager
public class CourseInstructorManager
{
public static List<CourseInstructor> GetCourseInstructor()
{
return new CourseInstructorRepository().GetAll().ToList();
}
}
私はCourseInstructorのデータは、私がnullとして学生のもNULL値としてコースの値を取得しています取得しようとしています。誰も私の上記のコードの問題点を教えてもらえますか?または私は修正や追加を行う必要がありますか?どのように私はそれらentititesをbrongすることができ、CO及びpが両方ともNULLで
List<CourseInstructor> c = CourseInstructorManager.GetCourseInstructor();
Course co = c[0].Course;
Person p = c[0].Student;
を地下鉄Filles。
あなたがここに巨大なコードを貼り付けることになっていません。あなたの質問が長すぎる場合、あなたはほとんど答えを得ることはありません。しかし、まず私の心の中にあるのは、あなたがLazyLoading *を無効にしたことです。 [関連エンティティの読み込みの例](http://stackoverflow.com/documentation/entity-framework/4678/loading-related-entities#t=201610130557286924715)を参照し、これらのオプションのいずれかを使用してエンティティを読み込みます。 –
明確な理解を得るには、完全なコードが必要でした。ここに基本クラスだけを貼り付けました。 – captainsac
@AdilMammadov貼り付けた実際のコードを見ると、** LazyLoading **が有効になります。 –