我希望这还没有得到回答,但我甚至不知道要搜索什么。在哪里存储与模型相关的方法
我有一个MVC项目,我需要从数据库返回一个用户列表。够简单。但我只想返回某些用户。再次,简单的东西。
我感到困惑的是,我不知道应该在哪里放置代码。如果我把它放在控制器中,我会用多种方法得到相同的代码,并分布在多个控制器上。
我目前已经把方法返回到我的dbcontext类的用户。这有效,似乎有道理,但我想知道是否有更好的方法来做到这一点?那个班最终会在一个更大的项目中变得更大。
我看过使用存储库类,但似乎是添加一个额外的图层。我正在使用EF6,并没有进行任何单元测试(尚未)
下面的代码显示了我的dbcontext类的结构(为了保持简短,我编辑了实际代码)。
public class LeadsDB :DbContext
{
public LeadsDB()
: base("Leads")
{
}
public DbSet<User> Users { get; set; }
public IEnumerable<SelectListItem> GetUserList(bool includeBlank = true)
{
return UserList;
}
}
存储库将是您下一个合乎逻辑的步骤。这层很好。位于业务逻辑和数据库访问代码之间。 – 2014-09-30 22:05:52
IMO你的'LeadsDB'类很好,绝对没有意义在其上添加另一个抽象。 – mxmissile 2014-09-30 22:08:26
@mxmissile,你不知道他的解决方案有多大,所以暗示有*绝对*没有意义添加另一层抽象是狭隘的。没有激进的答案......取决于他在做什么以及他的解决方案将取得多大成功,有不同的方法来实现他想要实现的目标。 – 2014-09-30 22:13:32