首页 > 解决方案 > 在实体框架中使用单个 .Include() 加载相关实体?

问题描述

有没有更好的方法来加载所有相关实体?

下面是 ScholarshipRequest 类,它也有奖学金、状态、学生、程序和用户。

public class ScholarshipRequest
    {
        public int Id { get; set; }
        public int Year { get; set; }
        public Status Status { get; set; }
        public DateTime ApplicationDate { get; set; }
        public DateTime ActionDate { get; set; }
        public Scholarship Scholarship { get; set; }
        public Program Program { get; set; }
        public Student Student { get; set; }
        public User User { get; set; }
    }

我只是在这里发布奖学金课程,其余类似。

public class Scholarship
    {
        public int Id { get; set; }
        public string Name { get; set; }
    }

下面的代码工作正常,但有没有更好的方法可以使用单个 .Include() 来加载它们,或者可能是其他方式?

ScholarshipRequestRepository repo = new ScholarshipRequestRepository(dBContext);
List<ScholarshipRequest> stdList = repo.Collection()
                .Include("Status").Include("Student").Include("User").Include("Scholarship")
                .Where(x => x.User.Id == userId).ToList();

标签: entity-frameworklinqlazy-loadingeager-loading

解决方案


推荐阅读