내가 CodeFirst와 EF 4.3을 사용하고 있는데 나는 이것과 같은 슈퍼/하위 모델이 있습니다EntityFramework 4.3 슈퍼 늦은 초기화
public Person {
long Id { get; set; }
[Required]
string Name { get; set; }
}
public Costumer : Person {
string SomeData { get; set; }
[Required]
string SomeRequiredData { get; set; }
}
이 문제의 단순화 된 버전입니다. 테이블에는 여러 필드가 있습니다. 신청서의 뒷부분에있는 사람이 Costumer에게 "승격"될 수 있습니다. 따라서 Person이 먼저 생성 된 다음 Customer로 변환됩니다.
질문 : Person을 만든 후에 어떻게 새 Person 레코드를 만들지 않고 (또는 다시 만들지 않고) 공급 업체에 "홍보"할 수 있습니까? 내가 할 경우
var costumer = new Costumer {
Id = [same id used before when Person was created],
SomeRequiredData = "Data"
};
모델은 그 이름이 필요 없다는 오류를 제공합니다. 원래의 Person 레코드에 이미 있기 때문에 새 공급 업체 인스턴스의 Person에서 필요한 모든 정보를 반복해야 할 필요는 없습니다.
아무도 도와 줄 수 있습니까?
P. 이 모델은 내가 "촉진"하는 방법을 사람을 만든 후
감사합니다 Ladislav, 이것은 실제로 DB 객체에 대한 모델링 문제입니다. 두 개의 테이블이 있지만 데이터베이스의 서로 다른 순간에 두 개의 엔티티가 생성되는 것은 용인 될 수 있지만 OO 모델은 허용되지 않습니다. OO 모델을 변경하여 두 엔티티간에 일대일 관계를 유지하고 문제를 해결했습니다. 알림을 다시 보내 주셔서 감사합니다. –