6

Entity Framework 4.0を使用して、モデルファーストメソッドでデータベースモデルを作成しました。次に、[モデルからデータベースを生成]を使用してSQLスクリプトを作成しました... App_DataフォルダーにSQLServerデータベースファイルも作成しました。このMDFファイルに対してSQLファイルを実行するにはどうすればよいですか?

VisualStudio2010を使用しています。

4

4 に答える 4

5

私はこれと同じ問題に遭遇しました、そしてこれが私のために働いたものです。

「モデルからデータベースを生成...」を選択すると、新しいMDFファイルが作成されました。このプロセスは正常に機能し、VisualStudioは必要なSQLスクリプトを生成しました。ただし、同じMDFファイルに接続してスクリプトを実行する方法がわかりませんでした。

とても簡単でした。

  1. スクリプトを右クリックして、[接続] >[接続]を選択します

  2. サーバー名と認証は、ローカルSQLEXPRESSインスタンスにすでに設定されている必要があります。

  3. [オプション]ボタンをクリックします

  4. [追加の接続パラメータ]タブをクリックします

  5. 以下をガイドとして使用して、データベースファイルへのパスを貼り付けます。

    AttachDBFilename = C:\ Path \ To \ Database \ LocalData.mdf; database = LocalData;

  6. [接続]ボタンをクリックします

それでも接続に問題がある場合は、すでに接続が開いていることが原因である可能性があります。サーバーエクスプローラーを確認し、接続が開いている場合は、右クリックして[接続を閉じる]を選択します。

このプロセスでは、SQLスクリプトが接続されている限り、永続的な接続も作成されます。スクリプトを閉じるか、右クリック>[接続]>[切断]を選択します。

詳細については、この質問を参照してください: EF4データベースの生成

于 2011-01-16T14:26:06.540 に答える
1

私は解決策を見つけましたが、それは少しハッキーです。

SQL Server Express(2008 R2)を使用しています。したがって、モデルからデータベースを生成するときは、モデルに接続して、そこでデータベースを構築します。それから私はに行きC:\Program Files\Microsoft SQL Server\MSSQL10_50.SQLEXPRESS\MSSQL\DATAます。10_50の部分はバージョンによるものであり、場合によって異なる場合があります。したがって、このフォルダーには、データベースと同じ名前の.mdfファイル(.mdf)があります。_log.ldfファイルもあります。これらをプロジェクトのApp_Dataフォルダーにコピーしました。

これは機能しますが、モデルの変更ごとに新しい.mdfデータベースを生成するのに非常に時間がかかります。だから私は出荷の直前にこれを行います。

より良い答えを見つけたら、共有してください。

于 2010-11-22T15:28:54.343 に答える
0

同じ問題、EF5を使用したmvc4でのモデルファーストアプローチに遭遇しました。私が行ったことは、プロジェクトを作成し、新しいモデルを追加し、edmx図にエンティティと関連付けを追加することでした。図を右クリックして、[モデルからデータベースを生成]を選択します。これにより、SQLファイルが生成されます。

次に、ソリューションエクスプローラーのApp_Dataフォルダーにmdfファイル(たとえば、Database1.mdf([追加]>[新しいアイテム]>[データ]>[SQL Serverデータベース])を追加します。

右クリック>このmdfファイルを開きます。これで、プロパティペインに接続文字列が表示されます。それをそのままコピーしてください。

生成したSQLスクリプトに戻り、右クリック>[実行]をクリックします。ポップアップが接続パラメータを要求します。サーバー名に正しい値があることを確認してください(PC名または127.0.0.1を使用してください)。

オプションで、[追加の接続パラメーター]タブをクリックし、mdfファイルのプロパティからコピーした接続文字列を貼り付けます。

これは私からは完璧に機能し、非常に論理的です。SQLServerのインストールディレクトリを直接操作する必要はありません。

于 2013-07-15T09:52:52.667 に答える
0

上記のすばらしい回答ですが、VS2013でさらにいくつかの手順を実行する必要がありましたが、次のようにここで解決しました。

  1. 既存の.mdfからADO.NETモデルを作成しました
  2. 右クリック->モデルからデータベースを生成
  3. ソリューションエクスプローラーで.mdfを右クリックし、開きます
  4. プロパティペインで、接続文字列をクリップボードにコピーします
  5. ADOモデルによって作成されたSQLQueryウィンドウで、[接続の変更]をクリックします
  6. 新しい[サーバーに接続]ウィンドウで->[追加の接続パラメーター]->クリップボードから接続文字列を貼り付けます
  7. サーバーエクスプローラーで、[データベース]->[新しいクエリ]を右クリックします
  8. ADOで生成されたスクリプトから新しいクエリウィンドウにクエリをコピーして貼り付けます
  9. USE[yourdatabase.mdf]をUSE[longPath]に変更します。ここで、longPathは、上部のドロップダウンにリストされている非常に長いパスです。最も簡単な方法は、入力を開始してCtrlキーを押しながらスペースを入れることです。
  10. クエリを実行する
  11. longPathは、ADOによって生成された新しいクエリのUSE []に貼り付けることができるため、保存してください。

これが誰かに役立つことを願っています-ハッピーコーディング!

于 2016-01-17T19:20:03.433 に答える