postgre에서.net dapper 를 써서 쿼리결과를 받아오는데 decimal 값이 null 로 넘어오는경우
using Dapper;
using System;
using System.Data;
using Npgsql; // PostgreSQL용 Npgsql 패키지 사용
// 모델 클래스 정의
public class MyData
{
public int Id { get; set; }
public decimal? Amount { get; set; } // Nullable decimal로 정의하여 null 값 허용
}
// PostgreSQL과 연결하고 쿼리 실행
public class Program
{
private const string ConnectionString = "Host=myserver;Username=mylogin;Password=mypass;Database=mydatabase";
public static void Main()
{
using (IDbConnection db = new NpgsqlConnection(ConnectionString))
{
string sql = "SELECT Id, Amount FROM my_table";
// Dapper Query 실행 및 결과 반환
var results = db.Query<MyData>(sql, new Type[] { typeof(decimal) }, (obj) =>
{
var amount = obj[1] is string ? decimal.Parse((string)obj[1]) : (decimal?)obj[1];
return new MyData
{
Id = (int)obj[0],
Amount = amount
};
});
// 결과 출력
foreach (var result in results)
{
Console.WriteLine($"Id: {result.Id}, Amount: {result.Amount}");
}
}
}
}