*

MVC5と魂力

公開日: : 最終更新日:2015/03/06 インターネット・パソコン, 日々.... , ,

このWebでは余りMVC5について書いていませんが、MVC5もよく使います。
元々Windows Formアプリを書く事が多いのですが、Web版をくれ~とリクエストが。

MVC5を始めた頃はMVC2とかMVC3をFreeBSD mono で遊んでいましたが、どうにもならない
ことが判明したのでWindows Serverで動くMVC4に移行しました。
ところがです、MySQL に Entity Framework(EF)を使おうとすると、EF6を使うことになります。
しかも、EF6を使うには MVC5が必須ということで、仕方無くMVC5になります。
今となっては、無駄な時間を使わずにMVC5にして良かったと思います。

初めてMVC5で書くときは、魂が吸い取られる思いがしました。当時は資料も書籍も殆どなくMSの本だけでした。

EFはコードファースト主体の解説が多いので、現実とのマッピングが理解を妨げました。特にモデルの書き方なんかが素人の私には厳しかった。

DBのテーブル名に対してテーブル名の複数形の名前でアクセスするあたりが、いやはや。今まであるテーブルはどうするのや?

モデルでは DbContext を使ってORマッピングしてDataAnnotationsを使って実テーブル
とマッピングすれば、現状のDBをそのまま使えます。


using System.Data.Entity;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;

namespace Net.Models
{
public class TargetContext : DbContext
{
public DbSet<Todo> ZTODOs { get; set; }

public DbSet<emp> emps { get; set; }

}

[Table("ZTODO")]
public class Todo
{
[Key]
[Display(Name = "番号")]
public int id { get; set; }
:
:
}
}

のようにマッピングでき、カラム名に日本語も使えます。通常MySQLでは日本語のカラム名は使いませんから、Dictionary 等で置き換えますが、MVC5ではDisplayで置き換えるだけで済みます。Display以外にも入力値のバリテーションとか

モデルができたら一度ビルドします。モデルの変更の都度ビルドが必要です。

後はコントローラーを書いて Scaffold すれば、 Viewまで一気に書けます。
もちろん上の例のように一つのモデルに複数のテーブルを書けます。

View は Scaffoldした時のコントローラーのメソッドにゲットするかプットします。
コントローラーでは、LINQを使ってオブジェクトを生成し、Listに渡して Viewに表示します。またViewで表示した結果をグラフにする場合も、Viewからメソッドを呼び出してListのまま Chart()に渡したりします。Chartヘルパーではなく、DataVisualization.ChartingにあるChart()を使います。なので、

using System.IO;
using System.Drawing;
using System.Web.UI.DataVisualization.Charting;

が必要です。

LINQ は赤間さんの LINQ テクノロジ入門が一番役にたちました。
当初は、SQLで書いた方が早いと思っていましたが、次第にLINQのみで考えるようになってしまいました。特に拡張メソッドはよく使います。

関連記事

CNC3020による基板切削

  ようやくですが交換用のコレットナットが届きましたので基板の切削してみました。

記事を読む

真空調理 3

豚フィレブロック すじ付きブロック、見るからに美味しそうです。テスト段階で作った焼豚は、失敗です。

記事を読む

真空調理 4

売り出ししていたオージービーフの大を加熱してみた。今回は55度8時間の設定。 巨大な肉の塊です

記事を読む

真空調理 2

Anovaで作る真空調理 順番は前後しますか、温玉は買わなくなりそうです。Anovaで作る温玉

記事を読む

Hello World

最初はここからスタートしよう Hello world! は幾度となく書いていると言うか毎回かく

記事を読む

真空調理5 ステーキ

買い出しに寄ったらアンガスのサーロインが食べてくれと並んでいた。嫁も飲み会だし焼いてみるか。 いつ

記事を読む

no image

E430を Windows10

アップグレードしましたが、皆さん Dolby Audioを開始できません とでるようですね。

記事を読む

no image

Auさんにはリブートも頼んではいけない

いや〜参りました 現象改善にホームゲートウェイをリブートすることに

記事を読む

連休の最後は公園へ

連休最終日は家族と軽~くドライブ つばさ公園に飛行機のタッチダウンを観に行ってきた。すごくのん

記事を読む

Au TV

フレッツを、辞めるので必然的にスカパー光も解約となる。見る間もないのもあるから良いかと思ってた。

記事を読む

Message

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

// no image
プリンターの改造

知人のプリンターの精度が悪過ぎので改造しました。ロッドを替え、エクス

// no image
3Dプリンターまとめ

3Dプリンターを導入したので、そのときのまとめを書いてみました。 C

真空調理6 パスチャライズ

Anovaに限らず低温調理は55度~65度の間で調理することが前提にな

真空調理5 ステーキ

買い出しに寄ったらアンガスのサーロインが食べてくれと並んでいた。嫁も飲

真空調理 4

売り出ししていたオージービーフの大を加熱してみた。今回は55度8時間の

→もっと見る

PAGE TOP ↑