DbProviderFactory.CreateCommandBuilder可以实际返回null吗?

时间:2016-08-04 07:11:42

标签: c# resharper sqlconnection sanitization

我使用以下模式来清理数据库名称:

var dbProviderFactory = DbProviderFactories.GetFactory(connection);
using (var commandBuilder = dbProviderFactory.CreateCommandBuilder())
{
    var fooSafe = commandBuilder.QuoteIdentifier(foo)
}

但每次我这样做时,R#抱怨commandBuilder并说

  

可能的System.NullReference异常。

为了摆脱这个警告我通常会把

Debug.Assert(commandBuilder != null);
创建命令构建器后

我主要使用SqlConnectionSQLiteConnection

documentation中没有太多关于它的内容:

  

返回实现DbCommandBuilder类的提供程序类的新实例。

我不确定是否应该检查命令构建器是否为null或只是忽略警告?

1 个答案:

答案 0 :(得分:1)

因为文档说它将返回一个“新实例”,我不会担心空检查。

Resharper可能会抱怨,因为它是一个虚方法,任何自定义实现都可能返回null。