엔티티에 대해 "기본"ID 생성 지원을 구현하고 싶습니다.EntityFramework가있는 엔티티에 ID 할당 4
엔터티를 저장할 때 EntityFramework가 이미 설정되지 않은 경우 엔티티의 id 값만 생성하도록하고 싶습니다. ID가 이미 0이 아닌 값이 아닌 경우 해당 엔티티가 데이터베이스에 저장 될 때 해당 엔티티 ID를 보존해야합니다.
기존 데이터 모델 (이전 데이터베이스에서 만든 EntityFramework 모델)에서 새로 만든 (모델 우선) EntityFramework 모델로 데이터를 마이그레이션하고 있습니다. 구 모델 A와 새 모델 T를 호출합시다.
일반적으로 T 엔티티는 저장시 ID 설정을 원합니다 (모두 int64 임). 새 모델을 장기간 사용하려면 .
현재 내가 마이그레이션 할 해당 A 엔티티의 ID를 기반으로 T 엔티티 ID를 명시 적으로 할당하고 있습니다. 따라서 마이그레이션 결과를 쉽게 확인할 수 있습니다.
그러나 T 엔티티 ID를 마이 그 레이션 루틴의 A 엔티티와 동일한 ID에 할당 할 수 있지만 엔티티를 저장 한 후에는 Id 값이 변경되었습니다.
T 모델의 모든 엔티티에 대한 기본 저장 방법을 덮어 쓸 수있는 방법이 있습니까? 예를 들어, 저장하기 전에 엔티티에 아직 설정되지 않은 경우에만 id 값이 할당됩니까?
다른 EntityFramework/Id 질문을 여기에서 보았습니다. 그러나 내 마음에 그들 중 누구도 똑같은 질문을하지 않습니다.
모든 리드 주셔서 감사합니다.
답장을 보내 주셔서 감사합니다. 데이터베이스에서 ID를 설정하지 않겠다는 의미입니까? 그렇다면 생성 모델은 이미 데이터베이스에서 ID 생성을 완전히 비활성화하는 엔티티의 속성에 설정할 수 있습니다. 내가 찾고있는 것은 이미 할당되지 않은 경우 데이터베이스에 자동으로 ID를 할당하는 것입니다. IOW, 조건부 또는 기본 할당. –
위의 코드는 실제로 키가 설정되지 않도록 강제합니다. 우리가 당신이 찾고있는 것과 다르다고 들립니다.EF가 당신을 도울 수있는 일은 아무것도 없습니다. –
답장을 보내 주셔서 다시 한 번 감사드립니다, 에드. 데이터 마이그레이션을 수행하고 명시 적으로 마이그레이션 코드 자체에 부분 클래스를 넣어 키를 할당 한 다음 EF가 새 프로덕션 응용 프로그램에서 나를 위해 키를 생성하도록 허용해야하는 시나리오에서이 기술을 사용할 수 있다고 생각합니다. 난 당신의 대답을 upvote거야,하지만 여전히 * 내 질문에 설명 된 동작을 얻을 싶습니다 * 대답으로 그것을 선택하지. –