본문 바로가기

C#/C# FullStack

[ASP.NET Core Web API] PUT기능 구현

1. 개념 정리

 

POST

값을 할당한 컬럼은 업데이트하고, 할당하지 않은 컬럼은 NULL로 변경. 만약 할당하지 않은 컬럼이 NULL값을 허용하지 않는다면 에러 발생 

 

PUT

값을 할당한 컬럼만 업데이트하고, 값을 할당하지 않은 컬럼은 기존의 값을 유지하는 것. 할당하지 않은 컬럼이 NULL값을 허용하지 않아도, 기존 컬럼에 값이 들어있으므로 에러 발생 안함

 

 

2. SQL Server UPDATE 쿼리 

UPDATE [BugsFarmDev].[dbo].[Camera]
SET [CameraName] = ISNULL(@CameraName, [CameraName])
    ,[RtspAddress] = ISNULL(@RtspAddress, [RtspAddress])  
    ,[HttpUrl] = ISNULL(@HttpUrl, [HttpUrl])
    ,[ConnectionTime] = ISNULL(@ConnectionTime, [ConnectionTime])
    ,[RecordStatus] = ISNULL(@RecordStatus, [RecordStatus])
FROM [BugsFarmDev].[dbo].[Camera]
WHERE [Id] = @Id;

 

3. Camrea Dto 

public class CameraEdit
{
    public long Id { get; set; }
    public string? RtspAddress { get; set; }
    public string? CameraName { get; set; }
    public string? HttpUrl { get; set; }
    public int? ConnectionTime { get; set; } //int로 바꾸면, ConnectionTime에 값을 할당하지 않을 시, 무조건 0으로 값이 할당됨
    public bool? RecordStatus { get; set; } //bool로 바꾸면, RecordStatus에 값을 할당하지 않을 시, 무조건 false로 값이 할당됨
}