use*_*401 2 c# model-view-controller entity-framework
基于这里提到的答案,我明白我应该将业务逻辑放在模型本身内,而在我的程序中我直接在控制器的操作中使用EF,例如直接从数据库中获取汽车列表我是执行以下操作:
public ActionResult CarList()
{
using(var _db = new CarRentEntities())
{
var result = _db.Cars.Where(m=>m.Active);
return View(result);
}
}
Run Code Online (Sandbox Code Playgroud)
如果我将在控制器内部或模型内使用上面提到的代码,对我的网站性能有什么影响?
我应该使用哪种方法?例如,如果我想与团队合作,是否有一个标准我应该遵循分离代码,请提出建议
使用存储库模式:我读到我们不应该使用如果在这里举例说明,我会复制一些提到的内容:
没有将存储库模式与Entity Framework一起使用的唯一最佳理由?实体框架已经实现了存储库模式.DbContext是您的UoW(工作单元),每个DbSet都是存储库.在此基础上实现另一层不仅是多余的,而且使维护更加困难.
如果我的数据库包含以下表格:制造商,汽车,租赁,客户,租赁类是客户和汽车之间有2个外键的表,并包含其他详细字段.
如何处理需要从2个不同的存储库汽车和客户端获取数据的Rent Object,以便根据用户输入的搜索条件显示租用网格,如果我将使用存储库Cars和Clients,他们有自己的dbContext,BOOM我的头无法理解这种技术,请告知
您的问题的答案是,它并没有真正影响性能,但随着应用程序变得越来越大,它肯定会成为可维护性方面的问题.您可以采用SOLID架构原则:使用简单C#示例的SOLID架构原则.这使您可以开发高质量的软件.
您可以创建一个多层应用程序:
- 接口层 - MVC应用程序
- 业务层 - 具有逻辑类的类库
- 数据访问层 - 数据库上下文和存储库,CRUD操作的工作单元
- 共享层 - 日志记录,AppSettings,验证,实用程序,扩展,常量,枚举
让你的应用程序在这个结构中需要你考虑控制反转,依赖注入等等,以确保松散耦合的类,简单的单元测试,最重要的是一个可靠的应用程序.
您还可以阅读:在ASP.NET MVC应用程序中实现存储库和工作单元模式
| 归档时间: |
|
| 查看次数: |
140 次 |
| 最近记录: |