내 클래스를 매핑 할 유창함 automapper을 사용하고 있는데 나는 현재 사람에 대한 요약 정보를 포함하는 기본 클래스와 자신의 모든 정보가 포함 된 파생 클래스가 : 내가 아는저장 유창함/NHibernate에 예측
interface IPersonSummary
{
string Name { get; set; }
DateTime? DOB { get; set; }
}
interface IPerson : IPersonSummary
{
string Address { get; set; }
string HairColor { get; set; }
}
public class PersonSummary : IPersonSummary
{
public string Name { get; set; }
public DateTime? DOB { get; set; }
}
public class Person : PersonSummary, IPerson
{
public string Address { get; set; }
public string HairColor { get; set; }
}
을 PersonSummary를 채우기 위해 필요한 필드들만을 데이터베이스로부터로드하기 위해 프로젝션을 사용할 수는 있지만, 그것은 각 필드를 맵핑하도록 명시 적으로 선언해야하며, 자동 정렬을 사용하는 모든 지점을 처음부터 무력화해야합니다. 또한 추가 필드 (예 : Address 및 HairColor)가 기본값으로 설정되어 프로젝션을 사용하여 데이터베이스에 새 항목을 만드는 방법을 찾을 수 없었습니다. 필자는 동일한 테이블을 사용하기 위해 Person과 PersonSummary를 모두 설정하도록 재정의를 시도했지만 예상대로 Fluent는 그것에 대해 불평했습니다.
이러한 클래스를 동일한 테이블에 매핑하는 방법은 무엇입니까?
판별 자 컬럼을업데이트를 사용 AutomappingConfiguration의 계층 구조 상속 매핑 당
감사를 자동 매핑으로 아이디어를 포함하지만, 나는 당신을 정확하게 이해하지 못한다면 discriminator 란이 여기의 해결책이라고 생각하지 않습니다. 판별 자 열을 사용하면 동일한 "테이블"에 다른 "유형"을 저장할 수 있습니다. 필자의 경우 "PersonSummary"레코드를 저장하고 모든 초과 필드 (예 : Address 및 HairColor)를 기본값으로 설정할 수 있기를 원합니다. 그런 다음 그 레코드를 Person 또는 PersonSummary로로드 할 수 있기를 원합니다. 투영은 내가 원하는대로 로딩 부분을 정확히 처리합니다. 작업을하기 위해 노력하고있는 저축 부분입니다. –