d5918c562c
Domain 레이어: - Enums: InquiryStatus (New/Contacted/Contracted/Closed) - Enums: ServiceType (기장/종소세/부가세/양도세/증여상속/기타) - Entities: Category, BlogPost, Inquiry, AdminUser (DB 매핑) - Interfaces: IBlogPostRepository, ICategoryRepository, IInquiryRepository, IDbConnectionFactory Infrastructure 레이어: - DbConnectionFactory: PostgreSQL 연결 팩토리 (Npgsql) - BlogPostRepository: GetBySlug, GetPublishedPaged, Create, Update, Delete, IncrementViewCount - CategoryRepository: GetAll, GetBySlug - InquiryRepository: Create, GetPaged, UpdateStatus - NuGet 의존성: Dapper 2.1.15, Npgsql 8.0.1, Configuration, DependencyInjection - DependencyInjection: AddInfrastructure() 확장 메서드 기술 결정: - Dapper로 SQL 완전 제어 - PostgreSQL 다중 쿼리 (QueryMultiple) 페이징 최적화 - 한국어 파라미터 처리 (::int, ::text 타입 명시) Co-Authored-By: Claude <noreply@anthropic.com>
20 lines
608 B
C#
20 lines
608 B
C#
namespace TaxBaik.Infrastructure.Data;
|
|
|
|
using System.Data;
|
|
using Microsoft.Extensions.Configuration;
|
|
using Npgsql;
|
|
using TaxBaik.Domain.Interfaces;
|
|
|
|
public sealed class DbConnectionFactory : IDbConnectionFactory
|
|
{
|
|
private readonly string _connectionString;
|
|
|
|
public DbConnectionFactory(IConfiguration configuration)
|
|
{
|
|
_connectionString = configuration.GetConnectionString("Default")
|
|
?? throw new InvalidOperationException("Missing 'Default' connection string in configuration.");
|
|
}
|
|
|
|
public IDbConnection CreateConnection() => new NpgsqlConnection(_connectionString);
|
|
}
|