여러 테이블에 여러 행을 삽입하기 위해 트랜잭션을 사용하고 있습니다. 이 행에 대해서는이 행을 순서대로 추가하고 싶습니다. SaveChanges를 호출하면 모든 행이 순서가 맞지 않게 삽입됩니다.행 삽입 주문 엔티티 프레임 워크
트랜잭션을 사용하지 않고 각 삽입 후에 변경 사항을 저장하면 주문이 유지되지만 모든 항목에 대한 트랜잭션이 필요합니다.
여러 테이블에 여러 행을 삽입하기 위해 트랜잭션을 사용하고 있습니다. 이 행에 대해서는이 행을 순서대로 추가하고 싶습니다. SaveChanges를 호출하면 모든 행이 순서가 맞지 않게 삽입됩니다.행 삽입 주문 엔티티 프레임 워크
트랜잭션을 사용하지 않고 각 삽입 후에 변경 사항을 저장하면 주문이 유지되지만 모든 항목에 대한 트랜잭션이 필요합니다.
Entity Framework의 삽입/업데이트 및 삭제 순서는 Entity Framework의 많은 요소에 따라 다릅니다.
예를 들어 새 제품을 새 카테고리에 삽입하는 경우 제품 앞에 카테고리를 추가해야합니다.
변경 사항이 많으면 먼저 만족해야하는 로컬 주문 제약 조건이 있으며 이는 실제로 우리가하는 일입니다.
컨텍스트에서 일을하는 순서가 이러한 규칙과 충돌 할 수 있습니다. 예를 들면 다음과 같습니다.
효과는 제품이 (컨텍스트에) 먼저 추가 된 다음 그래프를 걸을 때도 범주가 추가된다는 것입니다.
Product
Category
하지만 때문에 참조 무결성 제약 조건의 우리는 다시 주문을해야한다 다음과 같이 데이터베이스에 삽입하기 전에 : 문맥에 삽입 순서 즉
이다 그래서이
Category
Product
일종의 지역 재주문은 일종의 비협조적입니다.
그러나 이와 같은 로컬 종속성이 없으면 이론적으로 순서를 유지할 수 있습니다. 불행히도 우리는 현재 상황에 뭔가가 추가 된 것을 추적하지 않으며, 효율성상의 이유로 목록처럼 구조를 보존하기 위해 엔티티를 추적하지 않습니다. 결과적으로 우리는 현재 관련이없는 삽입 순서를 유지할 수 없습니다.
그러나 최근에 우리가이 문제에 대해 토론하고 있었으므로 이것이 당신에게 얼마나 중요한지보기 위해 열정적 이었습니까?
희망이
알렉스
프로그램 관리자 엔티티 프레임 워크 팀
나는이 다리를 건너하는 과정에있어설명해 주셔서 감사합니다. 지원된다면 시간이 절약 될 것입니다. 그러나 동일한 효과를 얻기 위해 내 기본 사용자 정의 키를 생성 할 수도 있습니다. – Wouter
아래 질문에 대한 몇 가지 다른 답변이 있습니다. 나는 타임 스탬프를 주문하거나 프라이 머리 키 대신에 무엇을 문제로 해결할 수 있는가? – Wouter
이것에 대한 어떤 업데이 트? 나는 테이블에 대체 키에 대한 제약 조건이있는 상황을 가지고 있으므로 모델에 눈에 띄는 관계가 없습니다. (A.K.는 userId 대신 userName입니다.) 그렇다면 어떻게하면 삽입 순서를 바꿀 수 있습니까? 지금은 사용자를 추가 한 다음 사용자를 그룹에 추가하면 savechanges가 실패합니다. – hazimdikenli
을하는 데 도움이됩니다. 나는 Hibernate를 EF로 대체 할 것이고, 내가 실행하고있는 문제는 목록이 DB에 삽입되는 방법이다. 목록에 아이템을 추가하면 (pseduo 코드에서) :
list.Add (testObject); list.Add (testObject1);
'SaveChanges'를 실행하면 동일한 주문을받을 수 있습니다. 이는 내 목록 객체 (즉, 연결된 목록)가 작성된 순서를 알고 있기 때문에 부끄러운 일입니다. 참조를 사용하여 함께 묶인 객체는 동일한 순서로 DB에 저장해야합니다 (MUST). 왜 당신이 "토론"하고 있다고 언급했는지 확신 할 수 없습니다. =)
여기에 답장 할 때 알아 차리면 확실하지 않을 수도 있습니다. 대답을 언급해야 할 것입니다. – Wouter
SQL 데이터베이스에 삽입하는 순서가 중요한 이유는 무엇입니까? –
삽입 순서는 중요하지 않지만 기본 키의 순서는 중요하지 않습니다. – Wouter