* 本篇目標
建立SQL SP,並於Entity FrameWork加入
* 前言
接下來幾篇,會開始介紹報表開發
* Stored Procedure(預存程序)
早期開發上,多半習慣將DAL層放入MS SQL的Stored Procedure,但我遇過公司是將所有商業邏輯也寫在SP裡的,那維護上會非常的痛苦,彈性也非常的低,Entity Framework出來後將DataBase物件化,讓不會懂SQL的人也可以去做資料的處理,且如果今天資料庫切換了,也只要將Conncetion修改,所做的工不會太大。但實務上一個系統常常會有一些報表要製作,報表通常牽扯到非常多的資料表,這時候用EF來講效能會非常的差,我就會將這些"清單型邏輯",這些複雜Join邏輯寫成Stored Procedure。
* 建立SP
此範例很簡單,我們將兩個資料表建立起來(實務上可能很複雜)
USE [Northwind]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- sp_Customer_Orders
ALTER proc [dbo].[sp_Customer_Orders]
as
DECLARE @errorMsg nvarchar(255)
begin
SET NOCOUNT ON;
--取得訂單所對應的客戶
SELECT Orders.OrderID,Orders.OrderDate,Customers.CustomerID,Customers.ContactName
FROM Orders inner join Customers on Orders.CustomerID = Customers.CustomerID
end
接著在實體模組加入
加入剛剛建立的SP
接著我們在BLL層建立一個OrderSevice直接使用,不須知道他的join邏輯
Entity Framework也幫我們產生好相對應的Class,相當方便
而Web專案直接像Service要資料
取得結果
本系列程式原始碼請至我的Github下載 https://github.com/kyleap
** 如內容有誤請告知,將進行修改,謝謝 **
沒有留言:
張貼留言