Entity Framework 하위 개체 삽입 방지
Entity Framework는 종종 지정된 엔터티와 함께 관련 하위 개체를 저장하려고 시도하여 무결성을 확보할 수 있습니다. 문제. 이 문제를 극복하고 하위 개체 삽입을 방지하기 위해 여러 가지 접근 방식을 사용할 수 있습니다.
Nullable 외래 키 속성
기본적으로 Entity Framework는 외래 키가 Null을 허용하지 않는 것으로 가정합니다. . 하위 개체를 null로 설정하려면 외래 키 속성을 null 허용으로 명시적으로 표시해야 합니다. 이는 모델 클래스에서 필수 속성을 false로 설정하여 달성할 수 있습니다.
예:
public class School { public int Id { get; set; } public string Name { get; set; } public int? CityId { get; set; } public City City { get; set; } } public class City { public int Id { get; set; } public string Name { get; set; } }
그러나 외래 키 속성을 null로 설정하면 다음과 같은 결과가 발생할 수 있습니다. 유효성 검사 오류.
엔티티 항목 상태 관리
대체 접근 방식은 Entity Framework 컨텍스트에서 하위 개체의 상태를 수동으로 설정하는 것입니다. 이는 하위 개체가 이미 존재하므로 저장하면 안 된다는 것을 컨텍스트에 알립니다.
예:
public School Insert(School newItem) { using (var context = new DatabaseContext()) { context.Set<School>().Add(newItem); context.Entry(newItem.City).State = EntityState.Unchanged; context.SaveChanges(); return newItem; } }
외래 키 접근 방식
더 강력한 방법은 모델 클래스에서 외래 키를 명시적으로 정의하는 것입니다. 특성에 외래 키 열 이름을 지정하면 Entity Framework는 관계를 인식하고 상위 개체만 삽입합니다.
예:
public class School { public int Id { get; set; } public string Name { get; set; } [ForeignKey("City_Id")] public int City_Id { get; set; } public City City { get; set; } } public class City { public int Id { get; set; } public string Name { get; set; } }
결론
널 입력 가능 외래 키 속성 사용, 엔터티 항목 상태 관리 또는 외래 키 명시적 정의를 통해 다음과 같은 이점을 얻을 수 있습니다. Entity Framework가 자식 개체를 삽입하는 것을 방지하는 방법. 적절한 접근 방식은 특정 요구 사항과 모델 설계에 따라 다릅니다.
위 내용은 Entity Framework가 하위 개체를 삽입하지 못하도록 하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!