Entity Framework 7 계단식 삽입

entity-framework-core

문제

우리는 애플리케이션에서 ASP.Net 5를 사용하기 때문에 EF6에서 EF7에 병합을 수행했습니다. 프로젝트가 막 시작되었으므로 베타 라이브러리에 의존하는 코드를 공개하는 데 문제가 없습니다.

캐스 케이 딩 삽입에 관한 문제가 발생했습니다. 캐스 캐이 딩 삽입은 자식 엔티티 집합이 부모와 함께 삽입 / 업데이트된다는 것을 의미합니다. 그것은 놀라운 방식으로 작업 순서에 의존하는 것 같습니다.

주어진 다음의 정의 :

public class ParentEntity
{
    public int Id { get; set; }
    public ICollection<ChildEntity> Children { get; set; }
}

public class ChildEntity
{
    public int Id { get;set; }

    public ParentEntity Parent { get; set; }
}

다음 코드가 작동합니다 (ChildTable은 3 개의 값으로 채워짐).

public class ParentEntity
{
    public int Id { get; set; }
    public ICollection<ChildEntity> Children { get; set; }
}

public class ChildEntity
{
    public int Id { get;set; }

    public ParentEntity Parent { get; set; }
}

그러나 다음은 수행되지 않습니다 (ChildTable은 비어 있습니다).

public class ParentEntity
{
    public int Id { get; set; }
    public ICollection<ChildEntity> Children { get; set; }
}

public class ChildEntity
{
    public int Id { get;set; }

    public ParentEntity Parent { get; set; }
}

아래 작업을 수행하려면 다음을 수행해야합니다.

public class ParentEntity
{
    public int Id { get; set; }
    public ICollection<ChildEntity> Children { get; set; }
}

public class ChildEntity
{
    public int Id { get;set; }

    public ParentEntity Parent { get; set; }
}

누군가 왜 그러한 차이가 있는지 설명 할 수 있습니까? EF6에서는 예상대로 작동합니다. 자동으로 추적 된 하위 엔티티에 대해 EF7에서 아직 지원이 없다면 이해 하겠지만 Set.Add 호출을 이동하면 분명히 작동하게 할 수 있습니다. 하위 컬렉션이 채워질 때 Set.Add 호출을 앞당겨 이동하는 것이 효과가 있다는 것은 나에게 더욱 놀라운 일입니다.

어떤 아이디어 / 설명?

우리는 EF7 베타 7을 사용합니다.

인기 답변

Google은이 동작을 예상대로 진행하기 위해 적극적으로 노력하고 있습니다. 최신 생각은 2015 년 8 월 27 일 디자인 회의 노트 를 참조하십시오.




아래 라이선스: CC-BY-SA with attribution
와 제휴하지 않음 Stack Overflow
이 KB는 합법적입니까? 예, 이유를 알아보십시오.
아래 라이선스: CC-BY-SA with attribution
와 제휴하지 않음 Stack Overflow
이 KB는 합법적입니까? 예, 이유를 알아보십시오.