在控制器中,我执行以下操作:
DBContext DB = new DBContext();
var u = DB.Users.Find(1);
u.firstname = "blah";
UpdateModel(u);
DB.SaveChanges();
我想在模特中做同样的事情......
namespace Project.Models
{
public class User
{
public void resetPassword()
{
// Generate new password, etc.
this.password = "blah";
}
}
}
知道我是怎么做的吗?似乎UpdateModel()
只能从控制器中获得。
我正在使用EntityFramework Code-First CTP5。
答案 0 :(得分:1)
我认为UpTheCreek是正确的,但可能需要一些解释,所以我会尝试扩展他/她的答案。第一步是使用repository pattern。您可以通过谷歌搜索在MVC中找到这种模式的许多示例 - this是一个特别温和的介绍(大约在页面下方的3/4)。
答案 1 :(得分:0)
在您的模型中放置数据访问问题不是一个好主意。
更新:是的,您通常会有一个数据访问层。正如Andy所说,目前最流行的方法是使用存储库。通常,您不希望模型中的任何内容不是核心业务逻辑。