當我們有多個表之間的關係時,我對模型感到困惑。以前,我使用SQL的視圖或存儲過程來操作數據,但現在我正在使用Entity Framework,因此我的模型看起來應該如何混淆?MVC模型混淆
我有一張表Users
, UserImages
, UserRoles
。
UserImages
和UserRoles
指的是UserID
Users
表。我不知道我的模型應該如何。在顯示數據時,我通常使用通過連接這兩個表在SQL Server中創建的視圖。當用戶被編輯或創建時,我更新這3個表格。
不確定在這種情況下我的模型應該是什麼樣子?我是否創建一個SQL服務器視圖並將其添加到edmx?或者在EDMX中分別添加3個表格,並在用戶模型中爲其他2個表格創建自定義屬性?
[HttpPost] 公衆的ActionResult創建(UserFormViewModel用戶視圖) {
User user = UserView.User;
try {
if (ModelState.IsValid) {
repository.AddUser(user);
repository.Save();
return View(new UserFormViewModel(user));
} else {
return View(new UserFormViewModel(user));
}
} catch (Exception ex) {
ModelState.AddModelError("Error", ex.Message);
return View(new UserFormViewModel(user));
}
}
public class UserFormViewModel {
UucsrRepository repository = new UucsrRepository();
public User User { get; private set; }
public SelectList States { get; private set; }
public SelectList Genders { get; private set; }
public SelectList RolesLists { get; private set; }
public SelectList SelectedRolesLists{ get; private set; }
public UserFormViewModel(User contact) {
User = contact;
States = new SelectList(repository.GetAllStates() ,"ShortName","Name");
Genders = new SelectList(repository.GetAllGenders(), "Gender", "Description");
RolesLists = new SelectList(repository.GetAllRolesLists(), "Id", "Name");
}
}
我不知道我應該怎樣準確地處理添加角色列表和圖片在這裏。
我會做同樣的事情。基本上實體框架是一個ORM,ORM可以讓你處理你的模型。你有User,UserIMage和UserRole作爲你的域對象。用戶與用戶對象包含的圖像和角色有一對多的關係。 HTH。 – Pradeep 2010-10-12 16:00:56
我在這裏添加了我的代碼,以防萬一您可以看一下。 – Mathew 2010-10-12 17:20:47