Windows で利用できる SQL Server の軽量バージョンである LocalDB に接続するには、Microsoft.Data.SqlClient NuGet パッケージを使用します。 この記事の例では、Windows 統合認証を使用します。
注釈
LocalDB で実行できる操作の概要を次に示します。
SqlLocalDB.exeを使用して LocalDB インスタンスを作成して起動します。sqlcmd.exe を使用して LocalDB インスタンスにデータベースを追加および変更する。 たとえば、
sqlcmd -S (localdb)\myinstのようにします。AttachDBFilename接続文字列キーワードを使用して LocalDB インスタンスにデータベースを追加する。AttachDBFilenameを使用する場合、Database接続文字列キーワードでデータベースの名前を指定しない場合、アプリケーションが閉じると、データベースは LocalDB インスタンスから削除されます。接続文字列では、次のように LocalDB インスタンスを指定します。 たとえば、インスタンス名が
myInstanceの場合、接続文字列には次の行が含まれます。Server=(localdb)\myInstance;Database=<database>;Integrated Security=true;Encrypt=true
User Instance=True は、LocalDB データベースに接続するときに許可されません。
LocalDB のインストールの詳細については、「 SQL Server Express LocalDB」を参照してください。
プログラムによって名前付きインスタンスを作成する
最新の .NET 上の Microsoft.Data.SqlClient では、.NET Framework system.data.localdb 構成セクションは使用されません。 アプリケーションが接続を開く前に、インスタンスを作成して開始します。
SqlLocalDB.exe create myInstance
SqlLocalDB.exe start myInstance
Server接続文字列キーワードに同じインスタンス名を指定します。 既存のデータベース ファイルをアタッチするには、AttachDBFilename をファイルの完全パスに設定し、Database をデータベース名に設定します。
信頼されたサーバー証明書を持たない LocalDB インスタンスを使用したローカル開発では、 Encrypt=true;TrustServerCertificate=trueを使用します。 この設定は接続を暗号化しますが、サーバー証明書の検証はスキップします。 リモート運用環境への接続の場合はEncrypt=true;TrustServerCertificate=false を使用して、クライアントが信頼し、サーバー名と一致するサーバー証明書を構成します。 詳細については、「 Microsoft.Data.SqlClient での暗号化と証明書の検証」を参照してください。