【发布时间】:2011-08-02 02:00:33
【问题描述】:
我是 LINQ to SQL 和存储库模式的新手,我试图通过一个简单的示例来了解我的应用程序应该如何构建。在我的用户模型对象上,我有一个名为 create() 的方法。创建用户时,我想插入到我的用户表中并插入到我的 user_role 表中,为用户分配尽可能低的角色。我在用户模型上有一个名为 create 的方法,它可以完成所有这些工作。如下图所示。对于使用 LINQ to SQL 的存储库模式应该如何工作,我是否走在正确的道路上。
public Boolean Create()
{
UserDbDataContext context = new UserDbDataContext();
// Create user.
IUserRepository userRepo = new UserRepository(context);
userRepo.Create(this);
// Get role that user should be added to.
IRoleRepository roleRepo = new RoleRepository(context);
var role = roleRepo.GetByRoleName("rookie");
// Insert user into role.
IUserRoleRepository userRoleRepo = new UserRoleRepository(context);
User_Role userRole = new User_Role();
userRole.RoleId = role.Id;
userRole.UserId = this.Id;
userRoleRepo.Create(userRole);
context.Dispose();
return true;
}
这是我的控制器方法。
public ActionResult Register(string username, string password, string email)
{
User user = new User();
user.Username = username;
user.Password = password;
user.Email = email;
user.DateCreated = DateTime.Now;
user.Create();
return RedirectToAction("Test");
}
我可以采取更好的方法来改进流程吗?任何帮助将不胜感激。
【问题讨论】:
标签: sql asp.net-mvc linq