我簡化域模型看起來是這樣的:管理在MVC2查找和持久對象與NHibernate
public abstract class Entity<IdK>
{
public virtual IdK Code { get; protected set; }
}
public class Contact : Entity
{
public virtual string Name { get; set; }
public virtual Company Company { get; set; }
}
public class Company : Entity
{
public virtual string Name { get; set; }
}
,我已經定義了一個視圖模型:
public ContactViewModel()
{
public Guid Code { get; set; }
public int Version { get; set; }
public string Name { get; set; }
public string Company { get; set; }
public List<SelectListItem> Companies { get; set; }
}
管理視圖中的我的聯繫人。
因爲我希望用戶能夠從公司的列表中選擇我添加SelectedListItem名單將在我的看法如下形式呈現:
<%=Html.ListBoxFor(m => m.Company, (List<System.Web.Mvc.SelectListItem>)Model.Companies)%>
現在,當用戶提交我的表單在保存之前,我用我的模型重新映射了我的視圖模型。
我填充我的聯繫人並使用ContactViewModel.Company的id創建類型爲Company的對象以與Contact類的屬性關聯。
由於我不想從數據庫中提取整個公司,所以我只填寫了id。 但是,當我堅持我的聯繫方式時,我收到一個異常:「非空屬性引用空或暫時的Domain.Contact.Company」。
用MVC + Nhibernate來管理查找和持久性的最佳解決方案是什麼?
你有什麼建議從你的經驗?
謝謝lomaxx。我想我會選擇第一個選項。這是你管理查找的方式嗎? – LeftyX 2011-02-08 11:47:04