当我们有多个表之间的关系时,我对模型感到困惑。以前,我使用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