上个笔记中以及创建好了Model层,接下来就是创建Dao层和Services层了,下一个笔记中还有WebAPI层(属于Controller层),它们的关系是从右到左引用依赖,类似于JavaEE中的分层。当然还有更多的层,但是这里我只记录这主要的几层。
新建Dao层项目:
给Dao层添加Model层依赖并用Nuget添加EF依赖。
右击Dao层项目添加一个PersonAgent类,编码如下(注意默认的类名之前没有修饰符,要加上public,不然等下访问不到):
using MyWebAPIDemo.DAL.Model;
using System.Collections.Generic;
using System.Linq;
namespace MyWebAPI.DAL.DAO
{
public class PersonAgent
{
public List<Person> GetList()
{
using (var context = new FirstDBEntities())
{
return context.Person.ToList();
}
}
}
}
可以看到代码基本和上一个笔记中Test层里的Program.cs的主方法一样。接下来可以把Test层设置为测试Dao层的,方法是右键Test层引用Dao层依赖:
Program.cs代码改为:
using MyWebAPI.DAL.DAO;
using MyWebAPIDemo.DAL.Model;
using System;
using System.Collections.Generic;
namespace Test
{
class Program
{
private static PersonAgent agent = new PersonAgent();
static void Main(string[] args)
{
List<Person> list = agent.GetList();
foreach(Person p in list)
{
Console.WriteLine("Person name:{0}, Person age:{1}", p.name, p.age);
}
}
}
}
同样测试成功:
Service层和Dao层十分类似,同样需要EF依赖,还有添加Model和Dao层引用,最后同样可以用Test层来测试查询所有Person表中数据的方法。这里只写出PersonService的代码,其实很简单。
using MyWebAPI.DAL.DAO;
using MyWebAPIDemo.DAL.Model;
using System.Collections.Generic;
namespace MyWebAPI.Bussiness.Services
{
public class PersonService
{
private PersonAgent agent = new PersonAgent();
public List<Person> getAllPerson()
{
return agent.GetList();
}
}
}
下一个笔记就到了WebAPI层。