2017-12-27 17 views
0

なぜこの結果がnullに戻るのか分かりません。私はID 100がデータベースに存在することを知っています。私はデータベースに保存できるオンラインフォームを作成しています。情報を更新するために私はそれらをIDで取り戻すことができるようにしたい。MVC/Entity Framework編集アクション

public ActionResult reviewPreevent(int? id) 
{ 
    id = 100; 
    if (id.HasValue) 
    { 
     using(formEntities db = new formEntities()) { 
      var form = (from a in db.form_preevent 
       select new preeventForm 
       { 
        id = a.id, 
        meeting = a.meeting, 
        date = (DateTime)a.eventDate, 
        location = a.location, 
        p1Foyer = (bool)a.p1Foyer, 
        p2Foyer = (bool)a.p2Foyer, 
        meetingRoom = (bool)a.meetingroom, 
        skRoom = (bool)a.skroom, 
        kk1 = (bool)a.kk1, 
        kk2 = (bool)a.kk2, 
        nursery = (bool)a.nursery, 
        Sanctuary = (bool)a.sanctuary, 
        kitchen = (bool)a.kitchen, 
        parkingLot = (bool)a.parkinglot, 
        mainLeaders = a.mainleaders, 
        helpers = a.helpers, 
        backup = a.backuphelps, 
        soundboard = (bool)a.soundboard, 
        soundboardtech = a.soundboardtech, 
        projector = (bool)a.projector, 
        projectorOp = a.projectorop, 
        camera = (bool)a.camera, 
        cameraops = a.cameraops, 
        livestream = (bool)a.livestream, 
        ushers = (bool)a.ushers, 
        totalUshers = (int)a.totalushers, 
        greeters = (bool)a.greeters, 
        totalGreeters = (int)a.totalgreeters, 
        security = (bool)a.security, 
        setupTime = (DateTime)a.setuptime, 
        setup = a.setup, 
        breakdown = a.breakdown, 
        foodItems = a.fooditems, 
        groceryShoppers = a.groceryshoppers, 
        foodPrepPersonal = a.foodprep, 
        estExpense = (float)a.estexpense, 
        estIncome = (float)a.estincome, 
        expense = (float)a.expense, 
        income = (float) a.income 
       }).Where(t => t.id == id).FirstOrDefault(); 
      return View(); 
     } 
    }else 
    { 
     TempData["notice"] = "No form with ID: " + id + " was found."; 
     return View(); 
    } 
} 

また、SQLクラスをviewmodelsクラスに一致させる簡単な方法はありますか?

+0

最初に最小限のクエリを作成してください: 'var form = db.form_preevent.FirstOrDefault(x => x.id == 100);' 2番目の質問については、[AutoMapper](http://docs.automapper.org/en/stable/Queryable-Extensions.html)を使用してこれらのフィールドをすべてコピーしてください。 –

+0

あなたの質問を修正するか、以下の回答の1つに合格とマークしてください。 –

答えて

1

あなたはとても近くでした。ビュー変数をクライアントに返すときは、Form変数を返す必要があります。

public ActionResult reviewPreevent(int? id) 
{ 
    id = 100; 
    if (id.HasValue) 
    { 
     using(formEntities db = new formEntities()) { 
      var form = (from a in db.form_preevent 
       select new preeventForm 
       { 
        id = a.id, 
        meeting = a.meeting, 
        date = (DateTime)a.eventDate, 
        location = a.location, 
        p1Foyer = (bool)a.p1Foyer, 
        . 
        . 
        . 
        income = (float) a.income 
       }).Where(t => t.id == id).FirstOrDefault(); 
      return View(form); //THIS LINE MODIFIED 
     } 
    }else 
    { 
     TempData["notice"] = "No form with ID: " + id + " was found."; 
     return View(); 
    } 
} 
関連する問題