나는 여러 가지를 읽고 읽고 시도해 왔지만 가장 기본적인 것을 성취 할 수있다.Nullable 속성에 null 할당 C#
여러 개의 null 가능 속성이있는 사용자 지정 개체가 있습니다. 이 속성에 이미 데이터가 있으면 문제가 null로 설정되지 않습니다. 이 게시물의 단순화를 위해 코드가 단순화되었습니다.
이 메서드는 전달 된 데이터를 사용하여 데이터베이스의 레코드를 수정합니다. 따라서 구독 개체를 만드는 라인에서 매개 변수를 사용하여 새 레코드인지 또는 기존 레코드를 수정하는지 알 수 있습니다. 기존 데이터베이스를 수정하려면 데이터베이스에서 레코드를 찾고 데이터베이스의 데이터로 채워진 개체를 반환합니다. 그런 다음 개체 속성을 새 데이터로 덮어 쓰고 다시 저장합니다. FechaAlta 속성에 데이터가있는 기존 레코드를 덮어 쓰고이 날짜를 null로 설정하려면 FechaData 개체 속성이 null로 설정되지 않습니다. 충분히 명확하길 바랍니다.
public string ProcessSubscription(string cRMID, string suscripID, DateTime? fechaAlta = null)
{
Subscription subscription = null;
....
subscription = new Suscription(modify)
....
subscription.CRMID = cRMID;
subscription.SuscripID = suscripID;
subscription.FechaAlta = fechaAlta;
....
return _update.UpdateEntity(subscription);
}
다음은 디버거가 그 행 다음에 표시하는 것입니다. 테스트 목적으로 null로 설정하려고했습니다. . Image from the debugger
완료되지 않았습니다. 'Subscription.FechaAlta'의 정확한 정의 (타입)는 무엇입니까? 디버거에서 어떤 일이 일어나고 이전/이후의 Db에 어떤 값이 있습니까? –
또한 .net의'null' 값은 매우 다릅니다 데이터베이스에서 'NULL'값으로; 나중에 일반적으로 .net에서'DbNull'으로 처리됩니다. 물론 이것은 DBMS 및 사용하는 통합 유형에 따라 다릅니다. –
@ JoshPart 죄송합니다. Josh, 전체 클래스 정의를 던지지 않고 내가 할 수있는 모든 것을 설명하려고했습니다. FechaAlta에 대한 정의는 물론 개인용 DateTime입니까? _fechaAlta = null. 같은 유형의 Get/Set 속성을 사용합니다. 디버거가 코드 예제의 줄에 도달하면 이전 데이터 (null이 아닌 DB 데이터) 만 남습니다. –