上個筆記中以及創建好了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層。