2016-08-04 59 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。

相關問題