*

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アプリでも便利使えて便利ですよ

記事を読む

no image

ダウンロードできないらしい

遠い隣国からは落とせないようなので、ここから落としてみてください 取り敢えずアップロー

記事を読む

no image

最近のFreeBSD

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

記事を読む

Au光二重ルータとDNS

Au光を使ってポート転送した時に内部ネットワークの名前を苦労しているんですね。 Au ホームゲ

記事を読む

Au 光ネットに決着 BL900HW

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

記事を読む

ツールアップデート

マインドツールをアップデートしました OneNote が調子悪いので添付もできるToDOに変更

記事を読む

MySQLとPostgreSQLにアクセス

普段からMySQLを良く使います。 そしてSQLかLINQで書きます。LINQといっても基本はSQ

記事を読む

サブカメラ

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

記事を読む

no image

bluetooth

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

記事を読む

no image

E430を Windows10

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

記事を読む

Message

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

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

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

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

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

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

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

真空調理5 ステーキ

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

真空調理 4

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

→もっと見る

PAGE TOP ↑