昨天把我們的資料庫架好了,
今天我們接著把專案連上資料庫吧。
begin tran
insert into menu (item,price) values('牛肉炒飯',70)
insert into menu (item,price) values('蝦仁炒飯',70)
insert into menu (item,price) values('肉絲炒飯',70)
select * from menu
commit tran
因為我們昨天在建立資料表的時候有給他識別欄位,所以當我們在建立資料的時候,
他會自動幫我們編號。
SqlSugar是一個幫忙我們處理跟SQL連線的套件,
可以讓我們程式設計師更方便的去跟資料庫做連接。
另一個,也是選擇SqlSuar最重要的原因,
因為他有中文文件,這可以大大降低我們學習的難度。
(官方網站)
DTO(Data Transfer Object),就是將我們的資料轉成物件。
讓我們在程式中操作比較方便,也能透過IDE 自動幫我們偵錯避免打字上的錯誤。
Menu.cs
Menu.cs
寫入我們Table所對應的欄位 public class Menu
{
[SugarColumn(IsPrimaryKey = true, IsIdentity = true)]
public int Uid { get; set; }
public string Item { get; set; }
public int Price { get; set; }
}
如何對應欄位的方式就上(官方網站)看他的介紹囉。
一般來說,要做一些測試的時候,
我們會另外開發一套診斷軟體(diagnostic software ),
用來測試/監測我們一些功能是否正常及其效能,
不過這邊就省麻煩,直接在程式必經的流程中加入我們要測試的程式碼。
HomeController.cs
Customer()
裡面輸入程式碼public IActionResult Customer()
{
//連線設定
SqlSugarClient db = new SqlSugarClient(new ConnectionConfig()
{
//連線字串
ConnectionString = "Server=.\\SQLEXPRESS;Initial Catalog=WebMenu;user id=webmenu;password=xxxxxxxx;Integrated Security=False",
DbType = DbType.SqlServer,//連線類型
IsAutoCloseConnection = true //自動關閉連線
});
//當執行時,觸發事件
db.Aop.OnLogExecuting = (sql, pars) =>
{
Console.WriteLine(sql);//查看SQL語法
};
var list = db.Queryable<Menu>().ToList();
foreach(var menu in list){
Console.WriteLine(menu.Item);
}
return View();
}
(p.s. 連線字串裡面的帳號密碼,要使用當初自己設置的帳號密碼喔)
3. 打開網頁
4. 點 顧客-點菜單
這步動作是為了讓程式可以執行到Customer()
5. 在Visial Studio 裡面的輸出 > ASP.Net Core 網頁伺服器
檢查我們打印出來的內容
紅色框部分第一列是我們下的SQL指令,後面則是我們寫在資料庫的商品名稱。
因為我們的專案是面對客戶的軟體,而不是工具,
所以在開發的時候要在合理的情況下,
盡可能的提升我們開發的效率,
而不是一味的追求,開發上的自由度(全部都自己來)。
對於ORM的使用有幾個Tips
太過於複雜的sql語法使用orm提供的語法有時不易完成,
與其一下寫原生語法一下不使用,不如統一不要用。
雖然大多數時候ORM都能提供最佳解,不過ORM提供的語法不容易修改,
當遇到一些無法解決的問題的時候,又會需要變回原生語法,
所以如果有此類問題,也建議直接不要用。
最後一點也是跟第一點一樣,考慮到整體程式統一風格,
不要一意孤行的使用自己的開發方式,多去配合別人的開發。
有些人會問,為什麼不直接把連線功能寫進去網頁上。
很多開發者都會忽略投入功能前的測試,
這會導致之後把功能投入專案之後發生問題很難找出原因。
所以在開發之餘如果有時間的話,可以開發一套diagnostic software,
先將功能投入這邊,沒問題後再投入專案。
這樣不僅不會降低開發時程,反倒在之後要維護的時候可以提供不少的幫助。