2016-08-04 63 views
1

我用下面的方式来净化数据库名称: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); 

创建命令生成器之后。

我主要使用SqlConnectionSQLiteConnection

没有太多关于它的documentation,只是说:

返回供应商的类的新实例实现DbCommandBuilder将类。

我不确定我是否应该检查命令生成器为null还是忽略警告?

+2

作为一个侧面说明,你可以有一个扩展方法,如[这里](https://github.com/matkoch/TestFx/blob/master/src/TestFx.Core/Utilities/Object.NotNull.cs# L26),这将为您节省额外的断言线。 – Matthias

回答

1

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

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

相关问题