網頁

顯示具有 ASP.NET MVC 標籤的文章。 顯示所有文章
顯示具有 ASP.NET MVC 標籤的文章。 顯示所有文章

利用 SQL Compact Edition 免費建立擁有 DataBase 的 Azure Websites [ Azure Websites + Database for free ]

只有免費服務才使用的這個世代,如果只是一個Demo用的小型網站自然不想使用到雲端的SQL DB來做為DataBase (其實只是不想花一個月150左右的DB費用XD)

鑑於想要使用免費Azure Websites,但又想要連接資料庫的人要怎麼做呢?
只能每個月砸150台幣買DB了嗎!?

答案當然是NO!

Code First "Virtual" 的用處 // Understanding code first virtual properties

一開始在學習 Code First 時會發現 "virtual" 都放在 List<> 前面,而小弟也相當疑惑,於是查了資料之後整理如下:

MVC_Login // Login 全圖片教學

今天目的是教大家以ASP.NET MVC的架構實作登入畫面和驗證,以Model→Controller→View的方式來建構。

Step1:建立Model(命名:MyUsersModel)


MVC_基本執行架構設定、流程

流程:

一、MVC架構會以路由(Route)裡的設定 new一個設定中的controller
       (這裡是HomeController)
二、呼叫設定裡同名的action,接著Index()回傳view() 也就是同名的  
        index.cshtml,最後將結果顯示到畫面上

也就是HomeController => Action(Index()) => 回傳View()

路由(Route): 其實在設定一開始的網址 (http://localhost:XXXX/Home/index)

APP_start/RouteConfig.cs

 public class RouteConfig
    {
        public static void RegisterRoutes(RouteCollection routes)
        {
            routes.IgnoreRoute("{resource}.axd/{*pathInfo}" );
                    //忽略.axd的檔案的意思

            routes.MapRoute(
                name: "Default",
                url: "{controller}/{action}/{id}",
                defaults: new {  //這裡設定預設controller & View
                         controller = "Home"
                         action = "Index" 
                         id = UrlParameter .Optional }   
            );
        }
    }

Controllers/HomeController.cs

public ActionResult Index()    //Index對應到 Views/Index.cshtml
{
     return view();   =Views/Index.cshtml
}



MVC_Entity FrameWork_Code First 實作教學_1

Hint:
  • Code First-指寫完程式碼自動生成DB(這個動作稱為Mapping,好像水反射一樣的那種感覺,Code反射到DB) ,另外做好DB產生程式碼也叫code first喔!! 不叫DB First很奇怪吧XD
  • 進入LocalDB只要在伺服器名稱打:(localdb)\V11.0  選window驗證即可進入

正題開始 Entity FrameWork

※先安裝NuGet套件→Entity FrameWork,並新增一個空白MVC架構的專案
※以下範例Code First結果皆產生到LocalDB資料庫


1.在Model內新增DBContext(選ADO實體資料集 也就是Entity FrameWork啦)
2.輸入想要建立的資料表,如下:




資料表內欄位如下(ClsOrder):
  • [ForeignKey("CustomerID")]標籤指定ForeignKey (其實可以不指定,預設會找後面有ID的屬性當FK)
  • public virtual ClsCustomer Customer { get; set; } 表示關連到ClsCustomer
  • [Required]指定必填欄位


資料表內欄位如下(ClsCustomer):
  • 注意!! private 或是 get set 裡面有輸入程式碼的又或是 [NotMapped] 標籤都不會 Mapping(映射)成資料欄位!!!
  • 建立OrderList以儲存客戶的Order資料,並利用建構子先New一個,免得到時候還要建List會忘記


最後在HomeController輸入程式碼並加入資料,F5執行後即完成Code First Mapping到資料庫的動作了!!

詳細如下: