EF Core에서 Postgres 사용 시 발생하는 Cannot write DateTime with Kind=UTC to PostgreSQL type 'timestamp without time zone'  에러를 해결하는 방법에 대해 알아봅니다.

 

 

 

현상

 

public class SomeClass
{
    [Column("created_on")]
    public DateTime? created_on { get; set; }
}

 

위와 같이 nullable DateTime 값을 수정하고자 할 때 Cannot write DateTime with Kind=UTC to PostgreSQL type 'timestamp without time zone' 오류가 발생.

 

 

 

수정

 

직접 setter를 구현해 명시적으로 DateTime.Kind를 설정합니다.

 

public class SomeClass{
    [Column("created_on")]
    private DateTime? _created_on
    public DateTime? created_on 
    {
        get
        {
            return this._created_on;
        }
        set 
        {
            this._created_on = DateTime.SpecifyKind(value, DateTimeKind.Utc); 
        }
    }
}

 

위와 같이 수정하면 정상적으로 nullable DateTime 컬럼이 수정됩니다.

 

 

 

 

 

반응형

+ Recent posts