*

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のみで考えるようになってしまいました。特に拡張メソッドはよく使います。

関連記事

FreeBSD 10.1の環境

そろそろ、FreeBSDの環境も10.1に更新しよう。今迄使ってたインストーラーは9.1ベースなので

記事を読む

Windows7 のキーボード

先日 CNC3020用に Windows7の入った中古の Dellを調達した。 古いがサクサク動い

記事を読む

CNC3020による穴あけ

[/video] 卵が先か鶏が先かの状態が続いています とりあえず、基板作成準備をしています 回

記事を読む

no image

E430を Windows10

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

記事を読む

とうとう始めてしまった真空調理

暫く前のメルマガで勝間さんが真空調理についてツイートされてました。何だろうと思い調べたのが、真空調理

記事を読む

no image

MVC5で集計結果をグラフにする

Web上にはMVC5で集計結果をグラフに書き出す例が少なくて難儀した。 Chartヘルパーを使

記事を読む

真空調理5 ステーキ

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

記事を読む

no image

bluetooth

後付け出来ないのでAmazonでbelkinのbluetoothを買ってみた 今は安売りしててお買

記事を読む

真空調理 2

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

記事を読む

no image

最近のFreeBSD

すっかりFreeBSDから遠ざかっていて、色々すっかり忘れてます。 そろそろ更新しないといけな

記事を読む

Message

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

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

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

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

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

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

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

真空調理5 ステーキ

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

真空調理 4

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

→もっと見る

PAGE TOP ↑