ASP.NET MVC EntityDataModel

設定方法

実際ã®ãƒ‡ãƒ¼ã‚¿ãƒ™ãƒ¼ã‚¹ã®DBã€ãƒ†ãƒ¼ãƒ–ルã€ãƒ•ィールド等をプログラムã‹ã‚‰æ“作ã§ãる状態ã®ã‚ªãƒ–ジェクト(エンティティ)ã¨ã—ã¦æ§‹ç¯‰ã™ã‚‹ã€‚
aspnetmvc_entitymodel
「Modelã€ãƒ•ォルダå³ã‚¯ãƒªãƒƒã‚¯ãƒ¡ãƒ‹ãƒ¥ãƒ¼ã‹ã‚‰ã€Œæ–°è¦è¿½åŠ 
 ↓
データ項目内ã®ã€ŒEntityDataModelã€ã‚’é¸æŠž
 ↓
既存データベースã‹ã‚‰ç”Ÿæˆ
 ↓
既存データベースã®ã‚µãƒ¼ãƒãƒ¼ã€DBåã€ãƒ†ãƒ¼ãƒ–ãƒ«ç­‰ã‚’é¸æŠž

DBåã€ãƒ†ãƒ¼ãƒ–ルåã€ãƒ•ィールドåç­‰ãŒå…¨ãåŒã˜ã‚¨ãƒ³ãƒ†ã‚£ãƒ†ã‚£ãŒè‡ªå‹•ã§ä½œæˆã•れる
EDM2
実在ã®ãƒ‡ãƒ¼ã‚¿ãƒ™ãƒ¼ã‚¹å†…テーブルã¨åŒã˜
EDM4
実際ã«ã¯Modelã«ã‚¯ãƒ©ã‚¹ãŒ(自動ã§)作æˆã•れã¦ã„る。
EDM3

Controller : エンティティ(クラス)ã®ã‚¤ãƒ³ã‚¹ã‚¿ãƒ³ã‚¹ä½œæˆ

â‘ 1レコードã®ã¿æ¸¡ã™å ´åˆ
public ActionResult MyTable1_1Row()
{
  //Modelsã«ã‚ã‚‹MyDBEntitiesクラスã®ã‚¤ãƒ³ã‚¹ã‚¿ãƒ³ã‚¹ã‚’作æˆ
  TEST.Models.MyDBEntities MyDB = new TEST.Models.MyDBEntities();
  var mymodel = MyDB.MyTable1;
  //View(MyTable1_1Row)ã«modelデータã®ï¼‘レコード目を渡ã™
  return View(model: mymodel.First());
}
②テーブルã”ã¨æ¸¡ã™å ´åˆ
public ActionResult MyTable1()
{
  //Modelsã«ã‚ã‚‹MyDBEntitiesクラスã®ã‚¤ãƒ³ã‚¹ã‚¿ãƒ³ã‚¹ã‚’作æˆ
  TEST.Models.MyDBEntities MyDB = new TEST.Models.MyDBEntities();
  var mymodel = MyDB.MyTable1;
  //View(MyTable1)ã«modelデータを渡ã™
  return View(model: mymodel);
}
â‘¢DBã”ã¨æ¸¡ã™å ´åˆ
public ActionResult MyDB()
{
  //Modelsã«ã‚ã‚‹MyDBEntitiesクラスã®ã‚¤ãƒ³ã‚¹ã‚¿ãƒ³ã‚¹ã‚’作æˆ
  TEST.Models.MyDBEntities MyDB = new TEST.Models.MyDBEntities();
  return View(model: MyDB);
}

View : モデルデータã®å–å¾—

ã€MyTable1_1Row.cshtml】
@model TEST.Models.MyTable1
<!DOCTYPE html>
<html>
<head>~</head>
<body>
  //モデルデータを出力
  @Model.Field1<br/>
  @Model.Field2<br/>
  @Model.Field3<br/>
</body>
</html>

ã€MyTable1.cshtml】
@model IEnumerable<TEST.Models.MyTable1>
<!DOCTYPE html>
<html>
<head>~</head>
<body>
  //モデルデータを全件Loop
  @foreach (var item in Model)
  {
    @item.Field1 @item.Field2 @item.Field3<br/>
  }
</body>
</html>

ã€MyDB.cshtml】
@model TEST.Models.MyDBEntities
<!DOCTYPE html>
<html>
<head>~</head>
<body>
  @foreach (var elm in Model.MyTable1)
  {
    @elm.Field1 @elm.Field2 @elm.Field3<br />
  }
  <br />
  @foreach (var elm in Model.MyTable2)
  {
    @elm.Field1 @elm.Field2 @elm.Field3<br />
  }
</body>
</html>

Follow me!