Ich benutze das folgende Muster Datenbanknamen zu sanieren:Kann der DbProviderFactory.CreateCommandBuilder tatsächlich eine Null zurückgeben?
var dbProviderFactory = DbProviderFactories.GetFactory(connection);
using (var commandBuilder = dbProviderFactory.CreateCommandBuilder())
{
var fooSafe = commandBuilder.QuoteIdentifier(foo)
}
aber jedes Mal, wenn ich dieses R # tun beschwert sich über die commandBuilder
und sagt
Mögliche System.NullReference Ausnahme.
Um diese Warnung loszuwerden ich
Debug.Assert(commandBuilder != null);
nach dem Erstellen des Befehls Builder in der Regel
setzen.Ich verwende meistens eine SqlConnection
oder SQLiteConnection
.
Es gibt nicht viel darüber in der documentation, die nur sagt:
Gibt eine neue Instanz der Klasse des Providers, der die DbCommandBuilder-Klasse implementiert.
Ich bin nie sicher, ob ich den Befehlsersteller für null überprüfen oder einfach die Warnung ignorieren soll?
Als Nebenbemerkung könnten Sie eine Erweiterungsmethode wie [hier] haben (https://github.com/matkoch/TestFx/blob/master/src/TestFx.Core/Utilities/Object.NotNull.cs# L26), was Ihnen eine zusätzliche Assertion-Zeile ersparen würde. – Matthias