我创建了一个应用程序,用户可以在其中注册自己,注册后他导航到主页。我在 MVC3 中执行此操作,但通过将其转换为 3Tier。为此,我将原始项目命名为演示文稿并制作了 DAL 并添加了模型文件夹和 DbContext 以及从演示文稿中删除模型。现在我必须创建 BLL,我想在其中编写插入、删除和更新的所有逻辑,并希望在我的演示文稿中的我的控制器中访问它。我怎样才能做到这一点?请指导我!
问问题
216 次
1 回答
0
好像您要求我们为您重写整个解决方案?
网上有许多入门工具包,可以为您提供有关如何完成工作的提示。有许多不同的方法可以达到相同的结果。我会简要介绍一下我是如何做事的。
对于此示例,我将参考客户,您可以对其进行修改以适应您的解决方案。
我有一个名为MyProject.DomainModel
. 在这个项目中,我有我的客户类:
public class Customer
{
public int Id { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
public int Age { get; set; }
}
我有一个项目叫MyProject.EntityFramework
. 在这里,我有我所有的存储库类。客户存储库方法示例:
public IEnumerable<Customer> FindAll()
{
return DatabaseContext.Customers;
}
然后我有另一个名为MyProject.Services
. 客户服务会调用您的客户存储库。不允许需要服务层,但是当我需要一些逻辑或需要调用其他存储库时,我会使用服务层。这就是我从服务层调用存储库方法的方式:
public interface ICustomerService
{
IEnumerable<Customer> FindAll();
}
public class CustomerService : ICustomerService
{
private readonly ICustomerRepository customerRepository;
public CustomerService(ICustomerRepository customerRepository)
{
this.customerRepository = customerRepository;
}
public IEnumerable<Customer> FindAll()
{
return customerRepository.FindAll();
}
}
您将看到 CustomerService 构造函数接收到 ICustomerRepository 的一个实例。这由依赖注入框架(如Autofac
.
在您的控制器中,您将拥有一个 List 操作方法,该方法具有一个 List 视图来显示您的所有客户:
public class CustomerController : Controller
{
private readonly ICustomerService customerService;
public CustomerController(ICustomerService customerService)
{
this.customerService = customerService;
}
public ActionResult List()
{
IEnumerable<Customer> customers = customerService.FindAll();
return View(customers);
}
}
远不止于此。您必须在线下载一些入门工具包并通过它来帮助您走上正确的道路。我给出的只是一个大概的大纲。
我希望这有帮助。
于 2013-07-03T12:06:37.747 回答