기본 클래스에서 파생 된 테이블이 있습니다. 따라서 파생 테이블은 기본 테이블과 동일한 ID를 갖습니다. 이제 값 인젝터를 사용하여 다른 속성 값 매핑
public class Animal
{
public int AnimalId{get; set;}
public string Name{get;set;}
}
public class Man:Animal
{
//Primary key as well as foreign key will be AnimalId.
public string Communicate{get;set;}
}
,
처럼 데이터베이스에서 기본 키로 ManId을 사용하여 클래스는 ManId가 기본 클래스 AnimalId 있음을 알려 유창하게 API를 사용할 수 있지만, 나는에 사용 ManId을 striaghtway 할 수있는 방법이 없습니다 내 poco 클래스 및 프로그래밍.그래서 viewmodel을 사용하여 내 클래스와 뷰에서 사용하기 위해 ManId 속성 이름을 지정했습니다. ValueInjector를 사용하여 모델과 뷰 모델간에 매핑합니다.
내가 풀 렸던 문제는 아침 내내 해결책을 찾고 있습니다. valueinjector가 이름이 같지 않으므로 valueinjector가 ManId에 AnimalId를 주입 할 수 없습니다.
해결책이 conventioninjection을 사용하여 기본값을 무시할 수 있음을 알았지 만 올바르게 구현할 수 없습니다.
public class PropertyMismatch:ConventionInjection
{
protected override bool Match(ConventionInfo c)
{
return ((c.TargetProp.Name == "ManId" && c.SourceProp.Name == "AnimalId") ||
(c.SourceProp.Name==c.TargetProp.Name && c.SourceProp.Value==c.TargetProp.Value));
}
}
아무도 해결책을 안다면 나에게 큰 도움이 될 것입니다. Thanx는 모든 시청자와 해결 자에게 매우 앞서 있습니다.
저를 보정 고맙습니다가 ManId 또는 MainId이 c.TargetProp.Name – KrishnaDhungana
에 오타가 있습니다. –