I Kontrast Sicherheit bin mit (Dritt-Tool, das SQL-Injection zeigt an, Schwachstellen) und Entity Framework, ist mein Code wie folgt aus:Entity Framework - Parameter Nullwert als
public int Insert(UserAddress userAddress)
{
_context.Entry(userAddress).State = EntityState.Added;
_context.SaveChanges();
return userAddress.Id;
}
Wenn SaveChanges()
ausgeführt wird, ein einfügen Abfrage wie folgt generiert:
INSERT [dbo].[Address] ([UserId], [Name], [Address1], [Address2],
[City], [State], [PostalCode],
[Location], [LocationTypeId],
[BusinessName], [DeliveryInstructions],
[IsDefault], [SortOrder])
VALUES ('111111a1-22z2-33x3-44y4-fbad42c09c3a', @2, 'address1', null,
'Alpharetta', 'GA', 30005,
'POINT (-80.2427068 30.0925161)', 0,
'', '',
1, 0)
Jetzt, nach Sicherheit, um den Kontrast, „null“ in Abfrage vorbei nicht ethisch ist, dann ist es eine schlechte Praxis - aber ich möchte Nullwerte zulassen!
Kann ich NULL-Werte mit SQL-Parametern an die SaveChanges()
-Methode übergeben?
Gibt es eine Möglichkeit, damit umzugehen? Hat jemand eine Idee?
Warum nicht Nullwerte in leere Strings konvertieren? –
Erstellen Sie ein [ViewModel] (https://stackoverflow.com/questions/11064316/what-is-viewmodel-in-mvc) der Felder, die Sie benötigen, und ordnen Sie es dann vor dem Speichern Ihrem Entitätsmodell zu. –
@robAnthody, ich habe viele Speicherprozeduren dort, die prüft, ist nicht NULL in where-Klausel, also glaube ich nicht, leere Zeichenfolge wird gute Ansatz sein! – Ankush