所以,我有以下2種模式:在EF/MVC中,是否可以編輯虛擬屬性?
[Table("Company")]
public class Company {
public virtual List<UserAccount> Users {
get {
// I load my users here
}
}
}
[Table("UserAccount")]
public class UserAccount {
public string email { get; set; }
}
在我看來,我嘗試編輯:
@model MyXsite2013.Company
<table>
foreach (UserAccount ua in Model.Users) {
<tr class="noRowHover">
<td>
@Html.TextBoxFor(modelItem => ua.email)
</td>
</tr>
}
</table>
而且在回發,我儘量節省:
public ActionResult Edit(Company companyModel) {
Company companyContext = database.Companies.Find(companyModel.ID);
database.Entry(companyContext).CurrentValues.SetValues(companyModel);
companyContext.IsActive = true;
database.SaveChanges();
}
這當然不會保存對用戶的更改,實際上,它甚至沒有看到更改進入。
根據對我的理解你的問題。我們不能在這種激情中使用,因爲虛擬關鍵字用於外鍵目的。如果我們使用虛擬關鍵字,則意味着集合將是延遲加載。如果我感到委屈,請糾正我。 – 2013-05-08 15:17:23
PLease read [this](http://stackoverflow.com/questions/4949991/binding-collections-in-mvc)和[this](http://stackoverflow.com/questions/6852559/mvc3-modelbinding-to-一個信息收集發佈,背與指數隙)。在閱讀公司後,成功綁定後,您將更新公司的屬性和集合(merge \ removeAll + add)。 – lavrik 2013-05-08 15:20:28
你應該在'@using(Html.BeginForm()){}'中包裝你的表單。 – 2013-05-08 19:32:08