首页 > 解决方案 > 包含在查询 lambda c# 中

问题描述

我有三个模型相关的主题,UserSchools 和 Enroll_Teacher_Subjects。我想进行查询以获取 UserSchools 的信息以及 Enroll_Teacher_Subjects 与 UserSchools 的关系。这对我有用,但我还需要 Enroll_Teacher_Subjects 中的对象 Subject 的信息,因为我需要 NameSubject、DescriptionSubject。始终为空,我不能将它放在包含查询 lambda 中。

模型主题

public class Subject
{
    [Key]
    public int SubjectId { get; set; }

    [Required]
    [StringLength(50)]//only you can to write 50 characters
    [Display(Name = "Nombre de la Materia")]
    public string NameSubject { get; set; }


    [DataType(DataType.MultilineText)]
    [Display(Name = "Descripcion de la Materia")]
    public string DescriptionSubject { get; set; }

    [Display(Name = "Grado")]
    public int LevelId { get; set; }

    public virtual Level Level { get; set; }

    public virtual ICollection<Enroll_Teacher_Subject> Enroll_Teacher_Subjects { get; set; }
}

模型用户学校

public class UserSchool
{

    [Key]
    public int UserId { get; set; }

    [Display(Name = "E-Mail")]
    [Required(ErrorMessage = "The field {0} is required")]
    [StringLength(50)]//only you can to write 50 characters
    [DataType(DataType.EmailAddress)]
    // [Index("UserNameIndex", Isnique = true)]
    public string EmailUser { get; set; }

    [Display(Name = "Nombres")]
    [Required]
    public string FirstNameUser { get; set; }

    [Display(Name = "Apellidos")]
    [Required]
    public string LastNameUser { get; set; }

    [Display(Name = "Full Name")]
    public string FullName
    {
        get { return string.Format("{0} {1}", this.FirstNameUser, this.LastNameUser); }
    }
    [Display(Name = "Telefono")]
    public string PhoneUser { get; set; }

    [Display(Name = "Direccion de residencia")]
    [Required]
    public string AddressUser { get; set; }

    [Display(Name = "Fecha de nacimiento")]
    [DataType(DataType.Date)]// para que nos muestre el calendario
    public DateTime DateBirthdayUser{ get; set; }


    [Display(Name = "Imagen")]
    public string PhotoUser { get; set; }

    [Display(Name = "Estudiante")]
    public bool IsStudentUser { get; set; }

    [Display(Name = "Profesor")]
    public bool IsTeacherUser { get; set; }

    [Display(Name = "Sistemas")]
    public bool IsSystemUser { get; set; }

    [Display(Name = "Numero de documento")]
    public string NumberDocumentUsers { get; set; }

    [Display(Name = "Tipo de documento")]
    public int TypeDocumentId { get; set; }
    public virtual TypeDocument TypeDocument { get; set; }

    [Display(Name = "Pais de nacimiento")]
    public int CountryId { get; set; }
    public virtual Country Country { get; set; }

    [Display(Name = "Departamento de nacimiento")]
    public int StateId { get; set; }
    public virtual State State { get; set; }

    [Display(Name = "Ciudad de nacimento")]
    public int CityId { get; set; }
    public virtual City City { get; set; }

    public virtual ICollection<Enroll_Teacher_Subject> Enroll_Teacher_Subjects { get; set; }
}

模型 Enroll_Teacher_Subject

 public class Enroll_Teacher_Subject
{
    [Key]
    public int Enroll_Teacher_SubjectId { get; set; }

    [Required]
    [Display(Name = "Fecha Matricula ")]
    [DataType(DataType.Date)]
    public DateTime DateEnroll_Teacher_Subject { get; set; }


    [DataType(DataType.MultilineText)]
    [Display(Name = "Observaciones")]
    public string ObservationEnroll_Teacher_Subject { get; set; }



    [Display(Name = "Profesor")]
    public int UserId { get; set; }

    public virtual UserSchool UserSchool { get; set; }

    [Display(Name = "Materia")]
    public int SubjectId { get; set; }

    public virtual Subject Subject { get; set; }

    [Display(Name = "Anno lectivo")]
    public int AnnoLectivoId { get; set; }
    public virtual AnnoLectivo AnnoLectivo { get; set; }

    public virtual ICollection<Enroll_Student_Subject_Teacher> Enroll_Student_Subject_Teachers { get; set; }

}

查询

public async Task<ActionResult> Details(int? id)
    {
        if (id == null)
        {
            return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
        }

        var UserList = await db.UserSchools                                           
                                        .Include(x => x.Enroll_Teacher_Subjects)

                                        .Include(x => x.TypeDocument)
                                        .FirstOrDefaultAsync(x => x.UserId == id);

        if (UserList == null)
        {
            return HttpNotFound();
        }

        return View(UserList);
    }

我的查询

在此处输入图像描述

该对象为空,我希望它提供有关该主题的信息

在此处输入图像描述

标签: .netasp.net-mvclinqlambda

解决方案


推荐阅读