*

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

関連記事

ToDOによる残件リスト公開

システム手帳を使い出した頃から利用しているToDO。今ではiPhoneアプリでも便利使えて便利ですよ

記事を読む

Au 光ネットに決着 BL900HW

Home Network[/caption] なかなか解決策が見つからず時間が経っていまいま

記事を読む

no image

WPA Enterprise ではいけないの?

よく WPA の説明の中に WEPがでてきますが、WPAにもWPA2にもWEPはないよね。そもそも、

記事を読む

no image

連休

今年は連休でなく飛び石な休みで、全く休んだ気がしませんな 取り敢えず、だらだらと過ごしてる 朝は、

記事を読む

no image

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

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

記事を読む

Au TV

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

記事を読む

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

Anovaに限らず低温調理は55度~65度の間で調理することが前提になっている。 愛読している

記事を読む

no image

プリンターの改造

知人のプリンターの精度が悪過ぎので改造しました。ロッドを替え、エクストルーダーを作り直し、ガラスベ

記事を読む

サブカメラ

ネットで酷評のミラーレスが手元に来ました。今が買い時ですね。 確かにAFは遅いし迷う。これだけだと

記事を読む

Windows7 のキーボード

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

記事を読む

Message

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

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

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

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

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

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

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

真空調理5 ステーキ

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

真空調理 4

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

→もっと見る

PAGE TOP ↑