golang funktioniert effektiv mit Null * -Typen

8

Wenn man mit einer Datenbank arbeitet, ist ein Null* -Typ für die meisten Szenarien nützlich, da man normalerweise keinen "Null" -Wert durchläuft, sondern die NOT NULL-Einschränkungen usw., um dich daran zu erinnern Sie haben nicht alle erforderlichen Daten eingegeben.

Sie erstellen also eine Struktur wie die folgende:

%Vor%

Das ist großartig, aber jetzt können Sie keinen direkten Zugang zu den Eigenschaften bekommen und müssen Role.Id.Value sowohl zum Abrufen als auch zum Setzen verwenden, das wird in einer großen App ziemlich alt, wenn Sie jeden Schritt extra haben müssen Zeit, die Sie auf die Eigenschaften zugreifen möchten.

Es wäre schön, wenn Sie zB direkt zuordnen könnten. Role.Code = "Fsfs" und in der Lage sein, etwas wie Role.Code.IsNull zu tun, wenn Sie an der Null-Überprüfung interessiert sind. Ist so etwas möglich?

    
Lee 16.01.2014, 01:38
quelle

3 Antworten

1

Verwendet Zwischenzeigerwert (e) eine Option?

%Vor%

Ссылка

    
Martin Gallagher 16.01.2014 14:36
quelle
1

Sie können auf Role.Code wie folgt zugreifen:

%Vor%

Sie können wie folgt nach null suchen:

%Vor%

Wenn Sie den Wert von r.Code manuell ändern, ohne einen sql.Scanner zu verwenden, könnte ein Setter hilfreich sein:

%Vor%

Ich habe das hier ausprobiert: Ссылка

    
very 17.11.2016 17:48
quelle
1

Behalten Sie App- und Datenbankcode getrennt .

%Vor%

Modellieren Sie die Datenbank.

%Vor%

Schreiben Sie einmal Code, um zwischen Modell- und Datenbankzeile zu konvertieren.

%Vor%

Ihr Schema ist vom App-Modell entkoppelt. Sie können Strukturen wie Benutzerkontaktdetails beim Speichern oder Laden abflachen.

%Vor%

Es ist flexibel. Sie können sogar Join-Zeilen ohne Zwischenstrukturen scannen.

%Vor%     
AJcodez 14.03.2017 20:39
quelle

Tags und Links