Я использую следующий шаблон дезинфицировать имена баз данных:Может ли DbProviderFactory.CreateCommandBuilder вернуть null?
var dbProviderFactory = DbProviderFactories.GetFactory(connection);
using (var commandBuilder = dbProviderFactory.CreateCommandBuilder())
{
var fooSafe = commandBuilder.QuoteIdentifier(foo)
}
, но каждый раз, когда я делаю это R # жалуется на commandBuilder
и говорит
Возможное исключение System.NullReference.
Чтобы избавиться от этого предупреждения я обычно ставлю
Debug.Assert(commandBuilder != null);
после создания команды строителя.
Я использую в основном a SqlConnection
или SQLiteConnection
.
Существует не так много об этом в documentation, что просто говорит:
Возвращает новый экземпляр класса провайдера, который реализует класс DbCommandBuilder.
Я не уверен, следует ли проверять построитель команд на значение null или просто игнорировать предупреждение?
В качестве побочного примечания вы можете использовать метод расширения, например [здесь] (https://github.com/matkoch/TestFx/blob/master/src/TestFx.Core/Utilities/Object.NotNull.cs# L26), что сэкономит вам дополнительную строку утверждения. – Matthias