2011-12-13 58 views
1

我正在編寫我的第一個ASP.NET MVC項目,並且對這個主題很缺乏經驗,所以請耐心等待。插入關聯表(ASP.NET MVC)

我必須使用現有的數據庫來創建我需要的新應用程序。我已經將它設置爲一個數據源,並使用ADO.NET實體數據模型來選擇我需要的表。我有一個表格,其中包含與父記錄相關聯的類別,並由唯一ID加入。此表不會出現在設計器中,而是來自Associations文件夾。如何將記錄插入此表中?或者我是否完全錯誤?

這裏是我迄今爲止的創建代碼:

// 
// POST: /Home/Create 
[AcceptVerbs(HttpVerbs.Post)] 
public ActionResult Create([Bind(Exclude = "KeyID")] KeyDate dateToCreate, int topic, int level, int subject, int audience) 
{ 
    dateToCreate.Created = DateTime.Now; 
    dateToCreate.CreatedBy = User.Identity.Name; 

    if (!ModelState.IsValid) 
     return View(); 

    keyDateRepository.Add(dateToCreate); 
    keyDateRepository.Save(); 

    return RedirectToAction("Index"); 
} 

下面是庫中的代碼:

// 
// Insert/Delete Methods 

public void Add(KeyDate keyDate) 
{ 
    db.KeyDates.AddObject(keyDate); 
} 

[...] 

// 
// Persistence 

public void Save() 
{ 
    db.SaveChanges(); 
} 

任何幫助非常讚賞。

+0

您是否需要在創建KeyDate的同時創建關聯的記錄? –

+0

嗨,Brian。你知道我會怎麼做嗎?當使用智能感知時,它告訴我其他實體,但不是關聯的實體。 –

+0

你好,所以我理解正確,你說的是如果我有一個用戶和角色表,如果它有一個UserRoles關聯表,將用戶鏈接到角色,你如何更新該表?在實體框架4中,這些都是直接可用的,但我相信隱藏在V1中...所以你使用的是V1? –

回答

0

嗯,我想通了。我沒有意識到我需要做的就是將類別添加到該對象的實例中。

dateToCreate.Categories.Add(keyDateRepository.GetCategory(topic)); 
dateToCreate.Categories.Add(keyDateRepository.GetCategory(level)); 
dateToCreate.Categories.Add(keyDateRepository.GetCategory(subject)); 
dateToCreate.Categories.Add(keyDateRepository.GetCategory(audience));