시작하기 전에 Axs.Dapper와 EF Core, EF 6.x NuGet 패키지를 사용하려는 프로젝트에 설치해야 합니다.
모듈 등록
먼저 등록하는 모듈의 AxsDapperModule에 대한 DependsOn 속성을 추가해야 합니다 :
[DependsOn(
typeof(StarterPackEntityFrameworkCoreModule),
typeof(AxsDapperModule)
)]
public class MyProjectNameDbEntityFrameworkCoreModule : AxsModule
{
public override void Initialize()
{
IocManager.RegisterAssembly(typeof(SampleApplicationModule).GetAssembly());
}
}
Note AxsDapperModule 종속성은 EF Core 종속성보다 나중에 추가해야합니다.
엔티티에서 테이블로 매핑
매핑을 구성 할 수 있습니다. 예를 들어, User 클래스는 다음 예제에서 Users 테이블에 매핑됩니다 :
public class UserMapper : ClassMapper<User>
{
public UserMapper()
{
Table("Users");
Map(x => x.Roles).Ignore();
AutoMap();
}
}
매퍼 클래스가 포함 된 어셈블리를 설정해야 합니다. 예 :
[DependsOn(
typeof(StarterPackEntityFrameworkCoreModule),
typeof(AxsDapperModule)
)]
public class MyProjectNameDbEntityFrameworkCoreModule : AxsModule
{
public override void Initialize()
{
IocManager.RegisterAssembly(typeof(SampleApplicationModule).GetAssembly());
DapperExtensions.SetMappingAssemblies(new List<Assembly> { typeof(MyProjectNameDbEntityFrameworkCoreModule).GetAssembly() });
}
}
코드에 사용하기
AxsDapperModule을 등록한 후 Generic IDapperRepository 인터페이스 (표준 IRepository 대신)를 사용하여 dapper 저장소를 주입 할 수 있습니다.
public class SomeAppController : ITransient
{
private readonly IDapperRepository<User> _userDapperRepository;
private readonly IRepository<User> _userRepository;
public SomeAppController(
IRepository<User> userRepository,
IDapperRepository<User> userDapperRepository)
{
_userRepository = userRepository;
_userDapperRepository = userDapperRepository;
}
public void DoSomePeople()
{
// Dapper Context를 통해 일반적인 쿼리를 실행하여 결과값을 받아 올 수 있습니다.
var people = _userDapperRepository.Query("select * from Users");
}
}