二日酔いで原因不明で体調が悪くて遅刻でした。7で対応方法をここでお勉強♪。エンジニアリングでPOCOなエンティティ・クラスを作成することです。1)ASP.NET5は、現時点での上記ツールを入れたバージョンとなります。1)入れてないとテンプレートがでない(んでしたっけ?)とかあるので、試される方は、ググっていただきインストールが必要です。バージョンによって多少テンプレートの中身も異なる可能性が大きいし、直ぐにバージョンも上がると思うので、きっと数週間~数か月でここで書く方法とは古くなるんだろうなーと思ってます。接続文字列の設定、動作検証な流れです。事前にデータベースとテーブルを作っておきます。うむ、それくらいでしょうか。プロジェクト作成VSでプロジェクトを作成します。Appication]を選び、targetのframeworkは、デフォルトで表示される4.6.1、テキトーにプロジェクト名とかつけ、[OK]します。Application]を選択して[OK]します。MVC6のテンプレートということで、ControllersとかServiceとかModelsなどのフォルダができています。bowerの設定変えたほうがいんじゃね的な内容が、ハンセルマン先生のブログにあったりなかったりしますが、www.hanselman.com今回の趣旨ではないので、放置プレイです。現時点でプロジェクトを作成すると、Entityframework関連は、以下が入ってます。EntityFramework.MicrosoftSqlServer(7.0.0-rc1-final)EntityFramework.Commands(7.0.0-rc1-final)EntityFramework.AspNet.Identity.Framework(3.0.0-rc1-final)Identityは、個人認証のプロジェクトを作ったから私のには入っているだけですが、その他は必須なはずです。これに加え、DabaseFirstするために以下をインストールします。EntityFramework.MicrosoftSqlServer.Design(7.0.0-rc1-final)コマンド叩いてインストールしてもOKですが、今回は何となくNugetPackageManagerでやってます。Solution...]を開きます。[Browse]を選択して、「EntityFramework.MicrosoftSqlServer.Design」と入力して検索します。一つヒットすると思いますので、その子をインストールします。するにはコマンド叩きますので、コマンドプロンプトとか開きます(画面キャプチャはConsole2です。)まず、プロジェクトのディレクトリに移動します。「{プロジェクトを作ったディレクトリ}/mvc6ef7/src/mvc6ef7」になります。ようは、「Models」とか「Controllers」とかあるディレクトリです。Prompt]でさっと開けます。次に、dnvmコマンドを使う準備的なこととして、以下のコマンド打ちます。するわけですが、コマンドはこんな感じです。Databaseに接続するので、Azureのポータルから接続文字列を確認しつつておきます。出力先はご自由にということで、DAL/DbContextsというディレクトリに出力します。接続先のサーバーが「tcp:beachside-dev-sv.database.windows.net,1433」Database名が「sqldatabase」SQL認証のユーザーは「Hogehoge」パスワードは「passHogehoge」だと、以下のコマンドになります。DAL/DbContextsコマンドを実行すると、ダラララララーと動いて、問題なければ最後にDoneとでます。ソリューションエクスプローラーを確認すると、テーブルの定義に添ったエンティティ・クラスが追加されていることが確認できます。デフォルトではDbContextのクラスに書かれます。今回、データベース名が「dev-sqldatabase」だったので、DbContextのクラスは、「dev_sqldatabaseContext」になっています。クラスを開くと、DbContextクラスが継承されており、最初の方に接続文字列の設定が書かれています。接続文字列は、「Startup.cs」でごねごねするのが一般的なようなので、[OnConfiguring]メソッドごと削除します。あ、その前に、接続文字列自体は利用するので、どこかにコピーしておきましょう。する前に、ソリューションエクスプローラー直下にある「appsettings.json」を開いて接続文字列を書きます。}}「"Logging"」はデフォルトのままです(今回のネタとは関係ないので)。接続文字列となる「ConnectionString」の値はコピペした通り書きますが、最後に「MultipleActiveResultSets=true」つけておくと良いでしょう。「それ何?」という方は以下あたりを参照に...。有効化さらに小ネタとして、「EntityFramework」を追加し、DbContextのクラス名(今回だと「dev_sqldatabaseContext」)を指定して、「ConnectionStringKey」に上記の通り書きます。お察しの通りですが、さっき書いた接続文字列を指定しているだけです。次に、「Startup.cs」を開きましょう。services)...]というメソッドがありますので、以下を追記します。options.UseSqlServer(connection));これで、設定は完了です。動作検証ということで、ざっくりなコードをHomeControllerに書いて試してみましょう。View();}雑にもHomeのIndexにコードを追加してしまったので、デバッグしてUrlを叩くと無事に動作することが確認できました。今回のサンプルでは、「Customer」テーブルが存在し、そこに「Title」列があって、その中で「Mr.」の行を取得した例になります。Databaseでサンプルデータ付きで作れるのでそれを使ってます。中身は、みんな大好きAdventureWorksです。)Startupクラスで接続文字列を取得してごねごねしてますが、別の書き方もできます。services)...]にて、こんな書き方でも問題なく接続できます。.AddDbContext<dev_sqldatabaseContext>();「AddDbContext」でoptionを書かないパターンです。ケースバイケースでどちらでもって感じですね。>まとめ現時点では、問題なくデータベース・ファーストで作れます。以前から同様にpartialなクラスになってるので、必要に応じてコンストラクタを追加したり色々できますね。一日半以上の遅刻となりましたが以上です。Oh、次のチャック先生は、既にブログ公開済みになってますね...。当ブログに掲載されている情報は、必ずしも正確性や安全性を保証するものではありません。掲載された内容によって生じた損害等の一切の責任を負いかねます。当ブログに掲載されている情報は個人の見解であり、所属する団体・組織は一切関係ありません。スターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。