LocalDBは外部からの接続に制限がある。
Azure Service FabricのエミュレーターからLocalDBへ接続する場合、外部接続
扱いとなってしまう。
LocalDBに共有名を設定し、"NETWORK SERVICE"アカウントを追加し、db_ownerのロールにマッピングすると、Service Fabricのエミュレーターから共有名でのアクセスができるようになる。
コマンドプロンプトから下記のコマンドを実行。
[[databasename]]のところは環境に合わせて変更(3か所)
sqllocaldb create MSSQLLocalDB
sqllocaldb start MSSQLLocalDB
sqllocaldb share mssqllocaldb sharedlocal
sqllocaldb stop MSSQLLocalDB
sqllocaldb start MSSQLLocalDB
"c:\Program Files\Microsoft SQL Server\110\Tools\Binn\SQLCMD.EXE" -S "(localdb)\.\sharedlocal" -d "[[databasename]]" -Q"create login [nt authority\network service] FROM windows with DEFAULT_DATABASE=[[databasename]];use [[databasename]];exec sp_addrolemember 'db_owner', 'nt authority\network service';"
App.configの接続文字列を下記のように設定
[[DbContextName]]、[[databasename]]は環境に合わせて変更
<add name="[[DbContextName]]" connectionString="data source=(localdb)\.\sharedlocal;initial catalog=[[databasename]];integrated security=True;MultipleActiveResultSets=True;App=EntityFramework" providerName="System.Data.SqlClient" />