0

我创建了一个应用程序,用户可以在其中注册自己,注册后他导航到主页。我在 MVC3 中执行此操作,但通过将其转换为 3Tier。为此,我将原始项目命名为演示文稿并制作了 DAL 并添加了模型文件夹和 DbContext 以及从演示文稿中删除模型。现在我必须创建 BLL,我想在其中编写插入、删除和更新的所有逻辑,并希望在我的演示文稿中的我的控制器中访问它。我怎样才能做到这一点?请指导我!

4

1 回答 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 回答