【发布时间】:2010-10-12 15:22:01
【问题描述】:
当我们在多个表之间存在关系时,我对模型感到困惑。以前,我使用 SQL 的视图或存储过程来操作数据,但现在我使用 Entity Framework 很困惑我的模型应该是什么样子?
我有一张桌子供Users、UserImages、UserRoles使用。
UserImages 和 UserRoles 指的是来自Users 表的UserID。我不确定我的模型应该如何。在显示数据时,我通常使用通过连接这两个表在 SQL Server 中创建的视图。当编辑或创建用户时,我会更新这 3 个表。
不确定在这种情况下我的模型应该是什么样子?我是否创建 SQL 服务器视图并将其添加到 edmx ?或者在 EDMX 中分别添加 3 个表并在用户模型中为其他 2 个表创建自定义属性?
[HttpPost] public ActionResult Create(UserFormViewModel UserView) {
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");
}
}
我不确定我应该如何在此处准确处理添加角色列表和图像。
【问题讨论】: