6 Stimmen

Ist DbNull bei Verwendung von Linq gleichwertig mit Null?

Dies ist no über DBNull vs. Null. Ich verstehe den Unterschied.

Was ich wissen möchte, ist, wenn ich Linq verwende, sagen Sie, um eine User.EmailAddress zugreifen, dann überprüfen User.EmailAddress == null ist die dieselbe as User.EmailAddress == DBNull richtig?

Meine Argumentation ist, dass das Fehlen von Daten in der Datenbank dazu führt, dass Linq keinen Objektverweis erzeugt, was dann bedeutet, dass null in der Tat gleichwertig mit DBNull ist, wenn es mit Linq verwendet wird.

Ist meine Argumentation richtig oder nicht?

0 Stimmen

Das glaube ich nicht. Ist null dasselbe wie DBNull, basierend auf Ihren Erkenntnissen?

12voto

Amy B Punkte 104656

Sie sollten DBNull nicht mit LinqToSql verwenden. Der Punkt ist die Sprachintegration, und so ein Konzept oder Name für null reicht aus.

2voto

Michael B Punkte 21

Hier ist die Select-Anweisung, die in LINQ to SQL für Visual Basic funktioniert. Ich gehe davon aus, dass es in C# genauso funktionieren wird.

User.EmailAdress.Equals(Nothing)

Zum Beispiel:

Dim EmptyEmailAddressEntries = From User in DC.Users _
    Where User.EmailAddress.Equals(Nothing) select User

Sie erhalten alle Benutzer, die keine E-Mail-Adresse haben. Um nur nach Einträgen mit Leerzeichen " " zu suchen, fügen Sie

O

User.EmailAddress = ""

0voto

jrista Punkte 31522

In LINQ to SQL sollten Sie null und nicht DBNull verwenden. LINQ to SQL ist ein OR-Mapper, d. h. er arbeitet mit Objekten auf native Weise. Das Ziel von L2S ist es, Ihnen die Arbeit mit Objekten auf standardmäßige Weise in .NET zu ermöglichen und L2S die gesamte Zuordnung zwischen nativen und DB-spezifischen Objekten für Sie erledigen zu lassen. Sie sollten es vermeiden, DBNull in L2S-Anweisungen zu verwenden... ich bin mir nicht einmal sicher, ob das überhaupt eine gültige Prüfung ist (es wird wahrscheinlich ein seltsames Verhalten verursachen, wenn es überhaupt funktioniert).

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X