2012-03-25 54 views
0

我有以下代碼:如何填充一個表的外鍵自動

var game = (from k in db.GamerTBLs 
where k.UserName == User.Identity.Name 
select k.GamerID).Single(); 
return View(game); 

,這是我的控制器:

[HttpPost] 
public ActionResult Create(GameTBL gametbl) 
{ 
    if (ModelState.IsValid) 
    { 
     db.GameTBLs.Add(gametbl); 
     db.SaveChanges(); 
     return RedirectToAction("Index"); 
    } 

    var game = (from k in db.GamerTBLs where k.UserName == User.Identity.Name 
     select k.GamerID).Single(); 

    return View(game); 
} 

我試圖填充玩家ID的相關桌上有外鍵GamerIDFK的遊戲。

任何一個可以請一些啓發,如果您需要了解更多信息,請讓我知道

+0

你的問題有點令人困惑,你能解釋一下這個頁面應該做什麼嗎?並且你也可以發佈你的模型... – 2012-03-25 21:40:09

回答

0

從你提供我應該的信息您的模型是這樣的:

GamerTBL:

public int GamerTBLId { get; set; } 
    public string UserName { get; set; } 
    public virtual ICollection<GameTBL> GameTBLs { get; set; } 

GameTBL:

public int GameTBLId { get; set; } 
    public string GameName { get; set; } 
    public int GamerIDFK { get; set; } 

你的控制器應作爲s omething這樣的:

[HttpPost] 
public ActionResult Create(GameTBL gametbl) 
{ 
    if (ModelState.IsValid) 
    { 
     //First you get the gamer, from GamerTBLs 
     var gamer = db.GamerTBLs.Where(k => k.UserName == User.Identity.Name).SingleOrDefault(); 
     //Then you add the game to the games collection from gamers 
     gamer.GameTBLs.Add(gametbl); 
     db.SaveChanges(); 
    } 
    return RedirectToAction("Index"); 
} 

實體框架抽象外鍵的概念,您不必擔心ID或FK,你只是對象「添加」到對象的集合。

+0

我在創建時遇到錯誤,是否有任何其他支持可以提供 – user1137472 2012-03-26 21:42:26

+0

這是錯誤:錯誤\t \t 1 'MvcApplication1.Controllers.GameController.Create(MvcApplication1.Models.GameTBL)':不是所有的代碼路徑返回一個值\t C:\ UsersMvcApplication1 \ MvcApplication1 \控制器\ GameController.cs \t MvcApplication1 – user1137472 2012-03-26 21:44:40

+0

我的不好,返回RedirectToAction(「Index」);應該超出if語句...我的答案現在已更新 – 2012-03-26 23:54:44