这是我第一次使用 MVC 做一个 web 项目,我试图让它基于三层:MVC、DAL(数据访问层)和 BLL(业务逻辑层)。
我也在尝试使用存储库,并且我正在使用代码优先。
无论如何,我已经在网上搜索了很多,但如果你对我有很好的参考,我会很高兴看到它。
我当前的项目如下所示:
这是我的问题:
代表表的 Product 和 User 类应该在哪里?看来我需要在 BLL 中使用它们,而在 DAL 中我并不真正需要它们,而是用于
PASContext
.我在哪里启动
PASContext
?在我在互联网上看到的所有示例中,没有人在存储库中使用 0 参数创建构造函数,这意味着上下文不是在存储库中创建的(我已经阅读了一些原因,为什么所有存储库都会这样使用一个上下文)。
如果我试图在编译器中启动PASContext
它ProductBLL
,它说它无法识别它并且我缺少一个引用(尽管我已经添加了所需的引用并且名称PASContext
被标记为蓝色,就像 vs 确实识别它一样)
PASContext
是继承自的类DbContext
。
下面是一些代码来演示:
public class ProductsBLL
{
private EFRepository<Product> productsRepository;
private List<Product> products;
public ProductsBLL()
{
PASContext context = new PASContext();
productsRepository = new EFRepository<Product>(context);
//LoadData();
}
- 关于视图模型,例如,如果我想为客户提供产品列表,我是否需要创建一个
ProductViewModel
,从中获取ProductsBLL
具有产品列表的数据并将其转换为列表ProductViewModel
然后发送到控制器?
此外,在 中ProductController
,我是否只发起ProductsBLL
?我没有启动任何存储库或上下文,对吗?
如果有人可以向我展示一些使用存储库、三层架构并从数据库中获取数据的项目,将其传输到 BLL 并从那里传输到 MVC 层并使用ViewModel
向客户端展示它会很棒。