如何使用WEB API 搭配Entity Framework 將SQL Server DataBase中資料帶出
前置作業(資料庫部分):
先在資料庫中建立資料表並建立其資料。
create table Employees
(
ID int primary key identity,
FirstName nvarchar(50),
LastName nvarchar(50),
Gender nvarchar(50),
Salary int
)
go
(
ID int primary key identity,
FirstName nvarchar(50),
LastName nvarchar(50),
Gender nvarchar(50),
Salary int
)
go
insert into Employees values('Mark','Hastings','Male',600000)
insert into Employees values('Melo','Tang','Male',700000)
insert into Employees values('James','Lebron','Male',800000)
insert into Employees values('Mary','Jane','Female',600000)
insert into Employees values('Melo','Tang','Male',700000)
insert into Employees values('James','Lebron','Male',800000)
insert into Employees values('Mary','Jane','Female',600000)
WEB API 部分:
Step 1:
先建立一個ASP.NET WEB API 專案
Step 2:
在新增另一個專案到同一個solution。
此專案主要是建立與資料庫溝通的EF(使用DataBase First)。
建立完成後solution explorer 會長這樣(一個是for EF 名稱為EmployeeDataAccess,另一個是WEB API)。
Step 3 : WEB API 專案引用 EF專案
WEB API 專案需要使用到EF專案,原因是因為要資料存取。
只需要在WEB API專案的REFERENCE 按下右鍵,選擇EF專案後加入即可。
Step 4: WEB API 專案新增Controller
public class EmployeesController : ApiController
{
//存取所有員工資料
public IEnumerable<Employees> Get()
{
using (EmployeeDBEntities entities = new EmployeeDBEntities())
{
return entities.Employees.ToList();
}
}
//依據傳入id值抓出特定員工資料
public Employees Get(int id)
{
using (EmployeeDBEntities entities = new EmployeeDBEntities())
{
return entities.Employees.FirstOrDefault(e => e.ID == id);
}
}
}
Step 5 : 發現web config 錯誤
這時候按下f5執行專案,輸入下列url,會得到此錯誤。
此錯誤是在告訴我們,在WEB API 專案的WEB CONFIG中找不到EF的連線字串。
所以解決方法是打開EF專案的APP.CONFIG找到連線字串後貼回WEB API專案的WEB CONFIG。
再次執行且輸入同樣URL,即可得到正確回傳結果。
資料來源: http://melomelo1988.pixnet.net/blog/post/335912849-asp.net-web-api-working-with-sql-server
留言
張貼留言