DynamoDB 테이블에서 읽어서 채워지는 DTO가 있습니다. 현재 다음과 같이 가정하십시오.
public class Item
{
public string Id { get; set; } // PK so technically cannot be null
public string Name { get; set; } // validation to prevent nulls but this doesn't stop database hacks
public string Description { get; set; } // can be null
}
이를 처리하기 위해 개발할 모범 사례가 있습니까? 매개 변수가없는 생성자는 Dynamo SDK의 ORM (및 기타)에서 제대로 작동하지 않기 때문에 오히려 매개 변수가없는 생성자를 피하고 싶습니다.
PK public string Id { get; set; } = "";
이기 때문에 결코 발생 Id
하지 않으며 결코 null 이 될 수 없기 때문에 글을 쓰는 것이 이상하게 보입니다 . ""
어쨌든 어떻게 되었더라도 어떤 용도로 사용 됩니까?
이에 대한 모범 사례는 무엇입니까?
- 그들
string?
중 일부는 결코 없어야하지만 null이 될 수 있다고 말해야합니다. - 나는 초기화해야
Id
와Name
함께""
그들이 있기 때문에 해야 널 (null)이 쇼 결코 의도는 비록""
사용되지 않을 것입니다. - 위의 일부 조합
참고 : 이것은 C # 8 nullable 참조 유형 에 관한 것입니다.
= ""
, 당신은 사용할 수 있습니다 = null!
효과적으로 없을 것 알고 속성 초기화 null
(컴파일러가를 알 수있는 방법이 없을 때)을. Description
합법적으로 할 수 있으면 null
로 선언해야합니다 string?
. 또는 DTO에 대한 Null 허용 여부 확인이 도움말보다 성가신 경우 유형을 #nullable disable
/ #nullable restore
로 감싸서이 유형에 대해서만 NRT를 해제 할 수 있습니다 .
#pragma warning disable CS8618
파일 상단에서 때릴 수 있습니다 .