Entity Framework를 사용하기 시작하고 문제가 발생했습니다.Entity Framework - 빈 자식을로드하는 방법
내 데이터베이스에는 2 개의 테이블이 있습니다. 하나는 ID와 암호가 들어있는 Agent이고 다른 하나는 AgentDetail이고 다른 하나는 Agent에 대한 정보가 들어있는 테이블입니다. 그러나 모든 상담원 레코드에 해당하는 AgentDetail 레코드가 없을 수 있습니다.
나는이 2 개 개의 클래스가 그 두 테이블을 표현해야한다 :
public class Agent
{
public string AgentId { get; set; }
public string Password { get; set; }
public virtual AgentDetail AgentDetail { get; set; }
}
public class AgentDetail
{
public string AgentDetailId { get; set; }
public string AgentName { get; set; }
public string Postcode { get; set; }
}
나는 데이터베이스 확인에 데이터를 추가 할 수 있습니다 EF를 사용. 두 테이블에 해당 레코드가 있으면 데이터를 검색 할 수도 있습니다. 그 기록은 AgentDetail 테이블에 존재하지 않는 경우 AgentDetail 내에서 값을 렌더링 할 때
var agents = from a in context.Agents
select a;
return View(agents.ToList());
그러나 나는 내보기에서 NullReferenceException이 얻을.
이제 AgentDetail 레코드가 없으므로 완전히 예상됩니다.
제 질문은 테이블에 레코드가 없을 때 EF에서 빈 값으로 AgentDetail을 만드는 방법입니다.
는 내가 LINQ 쿼리의 빈 자식 객체를 추가 할 수 - 뭔가 같은 :
var agents = (from a in rb.Agents
select new
{
AgentId = a.AgentId,
Password = a.Password,
AgentDetail = a.AgentDetail == null ? new AgentDetail() : a.AgentDetail,
}).ToList();
(위 그러나 나는 다음과 같은 메시지가 도착대로 작동하지 않습니다
엔터티 또는 복합 형식을 'Models.AgentDetail'은 LINQ to Entities 쿼리에서 구성 할 수 없습니다.
EF가 AgentDetail을 실제로 생성하지 않으려면 기록을 남기고 기록을 남기고 싶습니까? –
안녕하세요. 마크, 아니에 대해 신경 쓰지 않아요. 난 그저 존재하지 않는 자식 데이터를 처리하는 가장 좋은 방법을 알고 싶었습니다. – BrightonDev