나는 familier가 아닌 오류가 발생했습니다. 나는 성공하지 못한 채 구글을 시도했다. 이 오류가 발생하는 곳에서 다음 쿼리를 작성했습니다.LINQ to Entities 쿼리 오류
엔터티 또는 복합 유형 'MyWebProject.Models.UserDetail'은 LINQ to Entities 쿼리에서 구성 할 수 없습니다.
쿼리 :
UsersContext db = new UsersContext();
var userdata = (from k in db.UserDetails
where k.UserId == WebSecurity.CurrentUserId
select new UserDetail()
{
FullName = k.FullName,
Email = k.Email,
About = k.About,
Link = k.Link,
UserSchool = new School()
{
SchoolId = k.UserSchool.SchoolId,
SchoolName = k.UserSchool.SchoolName
},
UserCourse = new Course()
{
CourseId=k.UserCourse.CourseId,
CourseName=k.UserCourse.CourseName
},
Country=k.Country
}).FirstOrDefault();
등급 : 무엇이 잘못되었는지
public class UserDetail
{
public int Id { get; set; }
public int UserId { get; set; }
public string FullName { get; set; }
public string Link { get; set; }
public bool? Verified { get; set; }
public string Email { get; set; }
public string About { get; set; }
public School UserSchool { get; set; }
public Course UserCourse { get; set; }
public string Country { get; set; }
}
public class School
{
public int SchoolId { get; set; }
public string SchoolName { get; set; }
public string Country { get; set; }
}
public class Course
{
public int CourseId { get; set; }
public string CourseName { get; set; }
public School School { get; set; }
}
어떤 생각?
이 있는지 확인 @kandroid => m.UserSchool.SchoolName) '을 선택하십시오. 나는 학교 이름을 얻지 않는다. – kandroid
UserDetail 개체에 적절한 SchoolID가 있는지 확인하여 학교 테이블에 연결할 수 있도록합니다. 그런 다음에 학교 테이블에 이름이 있습니까? 즉, 먼저 조인을 사용하여 원시 쿼리를 수행하면 예상 결과를 얻을 수 있습니다. 데이터가 올바른지 확인한 후 컨트롤러가보기를 렌더링하고 속성을 확인하기 전에 중단 점을 설정하십시오. – Despertar
게으른로드를 사용하지 않는 경우 문제가 될 수 있습니다. 게으른 로딩에 의존하기보다 명시 적으로 객체를로드하는 방법을 보여주기 위해 아래에서 내 대답을 업데이트했습니다. –