私は1時間の検索の後にこれに対する実用的な解決策を見つけることができなかったとは思えません。私はフォローしています この記事 /コードファーストの簡単なウォークスルーを与えるEntity Framework 6.0。プロジェクトを作成し、プロジェクトをコンパイルするための最新の EF Nugetパッケージ をインストールしました。また、Visual Studio 2013に付属のMicrosoft SQL Server 2012 Express LocalDBがインストールされていることを確認しました。ローカルコンピューターにSQLの他のインスタンスがインストールされていません。プログラムが実行され、エントリがデータベースに追加されてコンソールに出力されます。しかし、記事に "localdbをチェックしてください"と書かれていても、それはどうやっても言えません!プロジェクトフォルダの下に作成された '.mdf'ファイルまたは '.ldf'ファイルが表示されません。私はVisual StudioのサーバーエクスプローラをLocalDBに接続するためにあらゆる方法を試しました。ウィザードが(localdb)
を見つけることができないか、または(localdb)\v11.0;Integrated Security=true;
のような接続文字列を受け入れるプロバイダーをサーバーエクスプローラーで見つけることができません。助けてください、これはイライラする必要はありません!
Visual StudioサーバーエクスプローラーをLocalDBに接続する手順は何ですか?
はい、私自身の質問に答えます。
LocalDBをVisual Studioサーバーエクスプローラーに接続する手順
SqlLocalDB.exe start v11.0
を実行SqlLocalDB.exe info v11.0
を実行(localdb)\v11.0
を入力します。うまくいかなかった場合は、先にコピーした インスタンスパイプ名 を使用します。これを使用してSQL Management Studioに接続することもできます。Visual Studio 2012 私がしなければならなかったすべては入力しました:
(localdb)\v11.0
Visual Studio 2015 および Visual Studio 2017 に変更されました。
(localdb)\MSSQLLocalDB
次の場所にMicrosoft SQL Server Data
ソースを追加するときのサーバー名として。
View/Server Explorer/(Right click) Data Connections/Add Connection
それからデータベース名が移入されました。サーバー名がサーバー名コンボボックスで自動的に使用可能になっていればいいのですが、私は承認された回答で他のすべての手順を実行する必要はありませんでした。
あなたのマシンで利用可能なLocalDBデータベース名を閲覧することもできます。
View/SQL Server Object Explorer.
で選択してください:
Microsoft SQL Server (SqlClient)
(localdb)\MSSQLLocalDB
Use Windows Authentication
データベース名を取得するには、[更新]ボタンをクリックしてください。
それは私のために働きました。
他の答えとは異なり、このアプローチでは以下を使用します。
- 特別なコマンドはありません。
- 複雑な設定はありません。
SQL Serverオブジェクトエクスプローラを使用する
それはかなり簡単です...
{YourTableName}
テーブルを右クリックしてください> ビューデザイナー 完了しました。
以下は、SQLServer Express 2016を使用しているWindows 10上のVisual Studio 2017 Community Editionで機能します。
PowerShellを開き、SqlLocalDB.exe info
を使用して何が呼び出されているか、およびSqlLocalDB.exe info NAME
を使用して実行されているかどうかを確認します。これが私のマシン上でどのように見えるかです:
> SqlLocalDB.exe info
MSSQLLocalDB
> SqlLocalDB.exe info MSSQLLocalDB
Name: mssqllocaldb
Version: 13.0.1601.5
Shared name:
Owner: DESKTOP-I4H3E09\simon
Auto-create: Yes
State: Running
Last start time: 4/12/2017 8:24:36 AM
Instance pipe name: np:\\.\pipe\LOCALDB#EFC58609\tsql\query
>
実行されていない場合はSqlLocalDB.exe start MSSQLLocalDB
で始める必要があります。実行中は、Instance pipe name:
で始まるnp:\\
が表示されます。その名前付きパイプ文字列をコピーします。 VS2017内でビューServer Explorer
を開き、タイプMicrosoft SQL Server (SqlClient)
の新しい接続を作成し(完全なファット接続タイプにしたい他のファイルタイプにだまされないでください)、Server name:
をPowerShellからコピーしたインスタンスパイプ名に設定します。
また、Connect to database
を使用してセットアップされた私のDotnet Core/Entity Frameworkコアプロジェクトで機能していた接続文字列に含まれていたのと同じデータベースにdotnet ef database update
を設定しました。
sqlcmd
と名前付きパイプ文字列を使用してログインし、データベースを作成することができます。
sqlcmd -S np:\\.\pipe\LOCALDB#EFC58609\tsql\query 1> create database EFGetStarted.ConsoleApp.NewDb; 2> GO
アプリケーションのユーザーを作成する方法については、 https://docs.Microsoft.com/ja-jp/sql/tools/sqllocaldb-utility にあります。
Visual Studio 2015 RCにはLocalDb 12がインストールされています。以前と同じ手順ですが、「魔法」を知る必要はありません。 :
cmd> sqllocaldb start
どちらが表示されます
LocalDB instance "MSSQLLocalDB" started.
あなたの instance nameは違うかもしれません。どちらの方法でもVSにポップアップしてサーバーエクスプローラを開き、データ接続を右クリックして追加を選択し、SQLサーバーを選択します。
(localdb)\MSSQLLocalDB
DB名を入力せずに、[接続テスト]をクリックします。
修正は機能しません。
図の例とまったく同じように、これらの手順はすべて「システム」データベースへのアクセスのみを提供し、アクセスする既存のユーザーデータベースを選択するオプションはありません。
ローカル(Express Editionではない)Microsoft SQL Serverインスタンスにアクセスするための解決策は、SQL Server側にあります。
完了しました。これで、接続プロパティの[サーバー名]リストからローカルのSQL Serverを選択できます。
管理者としてCMDを実行します。
インスタンスタイプの詳細を調べるには、SqlLocalDB info instanceNameを使用してください。
vSから接続を設定できます。VSで、/サーバーエクスプローラ/(右クリック)データ接続/接続の追加データソース:Microsoft SQL Server(SqlClient)サーバー名:(localdb)\ MSSQLLocalDBサーバーにログオンします。認証「接続テスト」を押し、次にOKを押します。
仕事が終わった
Visual Studio 2017で最も速い方法は、[ツール] - > [SQL Server] - > [新しいクエリ]の順に選択することです。ローカルデータベースから選択し、下部にある目的のデータベース名を選択します。
代替方法
Visual Studio 2017サーバーの名前は次のとおりです。
(localdb)\MSSQLLocalDB
メニューのツール - >データベースに接続...を使って新しい接続を追加します。
上記の手順を実行しましたが、Visual Studio 2015構成の前にSQL Server 2014 LocalDBをインストールするのを忘れました。
私のステップは以下の通りです:
これが誰かに役立つことを願っています。
シナリオ:Windows 8.1、VS2013 Ultimate、SQL Expressがインストール済みで実行中、SQL Serverブラウザが無効。これは私のために働いた:
これで、サーバー名で新しい接続を作成できます。(LocalDb)\ v11.0(ヒットリフレッシュ)データベースへの接続:ドロップダウンの下で新しいデータベースを選択します。
助けになれば幸いです。