這是一個常見的場景
我有這些實體
用戶
用戶ID
用戶名
...
UserQuestion
UserQID
UserID
UserQuestion
UserAnswer
實體框架4:保存一對多實體不起作用
一個用戶可以有很多的問題,但一個問題是連接到一個用戶。
在我的示例中,我創建了3個空實體(UserQuestion)。然後,我將這些問題提交給用戶。
在視圖中,對於每個問題,回答文本框,我使用ElementAt指定每個UserQuestion實體。
爲什麼我不能保存這些3個問題
在控制器
public ActionResult ChooseQuestion()
{
IUserRepository repUser = new UserRepository(EntityFactory.GetEntity());
User usr = repUser.GetUserByID(Convert.ToInt32(Session["UserID"]));
usr.UserQuestions.Add(new UserQuestion());
usr.UserQuestions.Add(new UserQuestion());
usr.UserQuestions.Add(new UserQuestion());
var ViewModel = new UsrViewModel()
{
UserInfo = usr
};
return View(ViewModel);
}
[HttpPost]
public void ChooseQuestion(User UserInfo)
{
UpdateModel(User, "UserInfo");
EntityFactory.GetEntity().SaveChanges();
}
在我看來
<%: Html.TextBoxFor(model => model.UserInfo.UserName)%>
...
<%: Html.TextBoxFor(model => model.UserInfo.LastName%>
...
<%: Html.TextBoxFor(model => model.UserInfo.UserPassword%>
..
<h2>Question Creation</h2>
<%: Html.TextBoxFor(model => model.UserInfo.UserQuestions.ElementAt(0).UserQuestion)%>
<%: Html.TextBoxFor(model => model.UserInfo.UserQuestions.ElementAt(0).UserAnswer)%>
<%: Html.TextBoxFor(model => model.UserInfo.UserQuestions.ElementAt(1).UserQuestion)%>
<%: Html.TextBoxFor(model => model.UserInfo.UserQuestions.ElementAt(1).UserAnswer)%>
<%: Html.TextBoxFor(model => model.UserInfo.UserQuestions.ElementAt(2).UserQuestion)%>
<%: Html.TextBoxFor(model => model.UserInfo.UserQuestions.ElementAt(2).UserAnswer)%>
感謝BorisCallens,這完全是我在找的東西。菲爾哈克郵報正是我需要的。謝謝 。我搜索了一段時間並從未找到答案。一個+++的答案在這裏。感謝其他人如何試圖幫助我,這真的很感激。謝謝。 – 2010-12-10 02:10:08
很高興我能服務;) – 2010-12-10 17:30:57