2015-01-12 2 views
2

"Id"로 명명 된 열을 기본 키로 설정하기위한 규칙을 만들고 싶습니다. 필자는 documentacion을보고 있었고 지금까지는 큰일이되었습니다dapper를 사용하여 ID에 대한 규칙 만들기

public ConventionMap() 
    { 
     Properties<int>().Where(p=>p.Name.ToLower()=="id").isKey(); 
    } 
가 DOMMEL 또는 말끔 확장 될 수

또는 다른, 난 그냥이 구현 : 좀 더 뭔가를하고 싶습니다

public class ProductMap : DommelEntityMap<TEntity> 
{ 
    public ProductMap() 
    { 
     Map(p => p.Id).IsKey(); 
    } 
} 

: DOMMEL와 : 같은 클래스가 수동으로 클래스해야 할 일 유창하다.

어떤 조언이 필요합니까? 덕분에 !

+0

어디서이 기능이 필요합니까? Dapper 자체에는 열 이름, 테이블 이름 및 기본 키에 대한 지식이 없습니다. DapperExtensions 또는 Dommel을 사용하고 있습니까? –

+0

나는 어느 방향 으로든 이동할 수 있지만 지금은 DapperExtensions로 시도 중입니다. –

답변

2

Dommel을 사용하면 IKeyPropertyResolver 사용자 정의를 만들 수 있습니다.

귀하의 구현과 같을 것이다 : 당신은 Dapper.FluentMap (또는 단정 한 필요하지 않습니다

DommelMapper.SetKeyPropertyResolver(new CustomKeyPropertyResolver()); 

: 스타트 업 코드 줄을 사용하여 응용 프로그램에 등록해야한다

public class CustomKeyPropertyResolver : DommelMapper.IKeyPropertyResolver 
{ 
    public PropertyInfo ResolveKeyProperty(Type type) 
    { 
     return type.GetProperties().Single(p => p.Name.ToLower() == "id"); 
    } 
} 

.FluentMap.Dommel)이 있습니다. 참조 : the documentation.