ASP.NET MVC Visual Studio 2017 1 1-4 MVC MVC 範例 1-1 建立第一個 MVC 專案 Visual Studio MVC step 01 Visual Studio Web ASP.NET Web (.NET Framework) step 02 C:\MvcExamples firstmvc MVC 1-7 ASP.NET MVC 1-9
ASP.NET MVC step 03 firstmvc 1-8 ASP.NET MVC step 04 F5 MVC ASP.NET MVC 1-9 MVC MVC MVC MVC 1-10
ASP.NET MVC Visual Studio 2017 1 1-10 ASP.NET MVC 1. Request URL 2. Routing Routing App_Start/Route- Config.cs 1-11 RouteConfig.cs 1-11
ASP.NET MVC 3. Controller Controllers MVC HomeController.cs Home Index() About() Contact() Action Methods 1-12 Controller Action 4. Model Models MVC Model Properties 5. View Views Home Shared Views\Home Home Action View Index() Index.cshtml.cshtml html js css.cshtml 1-12
ASP.NET MVC Visual Studio 2017 1 1-13 View 6. Response Response Razor View Engine View Layout Request Response / /Fiddler Postman 1-5 Controller Model View MVC Controller Model View MVC 範例 1-2 逐步建立自訂的 Controller Model 及 View firstmvc Product Controller View Model step 01 Controller 1-13
L e s s o n Entity Framework ORM Database First / Model First EDM CRUD
ASP.NET MVC Entity Framework EF ORM Entity Data Model Entity Entity Set DbContext EF Database First Model First Code First CRUD 11-1 Entity Framework ORM Entity Framework ORM EF ORM ORM Object-Relational Mapping O/RM O/R Mapping Object ORM Object CRUD SQL Server Oracle MySQL ORM CRUD Create Read Update Delete ORM ORM ORM ORM 11-2
Entity Framework Database First & Model First 11 Object ORM 11-1 ORM Entity Framework ORM Object-Relational Mapper O/R Mapping C# CRUD EF ADO.NET CRUD.NET Object Entity Framework SQL Server 11-2 Entity Framework EF ADO.NET Data Provider EF ADO.NET CRUD.NET Object Entity Framework ADO.NET SQL Server 11-3 EF ADO.NET EF SQL Server Oracle MySQL SQLite PostgreSQL DB2 11-3
ASP.NET MVC EF 11-4 Entity Framework 11-2 Entity Framework 6 ORM Entity Framework 6 ORM Entity Data Model.edmx Entity Data Model Model Database First 11-4
Entity Framework Database First & Model First 11 Model Model First Code First Entity Entity Data Model Code First Migrations Model POCO EF LINQ Mapping Eager Loading Lazy Loading Explicit Loading Identity resolution Unit of Work.NET Framework WPF WinForms ASP.NET ADO.NET SQL Sever Oracle MySQL SQLite PostgreSQL DB2 Providers 11-5
ASP.NET MVC 11-3 Entity Framework EF Database First Entity Data Model.edmx.edmx Entities Association EF.edmx Model First Model Entity Data Model.edmx Model Code First Code First Entity Class Entity Data Model.edmx Code First Code First 11-5 EF 11-6
Entity Framework Database First & Model First 11 1. EF EF Workflow 2. Entity Data Model EDM Data Model Model Database First Model First EF 4.1 Code First EF Code First 11-4 Database First Database First Database First EDM EDM Entity Class Association /Relationship Northwind Northwind.edmx Entity Northwind / Product Product 11-7
ASP.NET MVC 11-6 Northwind.edmx EDM 11-4-1 EDM.NET Entity Framework EDM EDM EDM CRUD EF CRUD SQL Entity Set Console EDM Console MVC Console EF EF CRUD MVC EF Model CRUD MVC 11-8
Entity Framework Database First & Model First 11 Northwind for Visual Studio 2017 http://bit.ly/2kchlfx https://drive.google.com/open?id=1o4qaxr0margg_jeobt9g2k _2EErSTUox 範例 11-1 從既有 Northwind 料庫產生 Entity Data Model 資料模型 Console Northwind EDM EDM EF ORM EF_DatabaseFirst step 01 Visual Studio EF_DatabaseFirst 11-7 Console step 02 Northwind Northwnd.mdf Northwnd.ldf 11-9
ASP.NET MVC step 03 Northwnd.mdf 11-8 Northwind step 04 ADO.NET NorthwindDataModel.edmx 11-9 Entity Data Model 11-10
Entity Framework Database First & Model First 11 EF Designer 11-10 NorthwindContext 11-11 11-11
ASP.NET MVC EDM NorthwindModel 11-12 NorthwindDataModel.edmx 11-6 App.Config Entity Data Model MVC Web.config App.Config 的 EF 資料庫連線設定 <?xml version="1.0" encoding="utf-8"?> <configuration> <connectionstrings> <add name="northwindcontext" connectionstring="metadata= res://*/northwinddatamodel.csdl res://*/northwinddatamodel.ssdl res://*/northwinddatamodel.msl; provider=system.data.sqlclient; provider connection string="data source=(localdb)\mssqllocaldb; 11-12
Entity Framework Database First & Model First 11 attachdbfilename= DataDirectory \northwnd.mdf; integrated security=true;multipleactiveresultsets=true;app= EntityFramework"" providername="system.data.entityclient" /> </connectionstrings> </configuration> step 05 LINQ Northwind EDM EDM EF CRUD Program.cs F5 Program.cs using System; using System.Linq; namespace EF_DatabaseFirst { class Program { static void Main(string[] args) { var db = new NorthwindContext(); DbContext var products = from p in db.products select p; LINQ EDM Console.WriteLine(" 產品資訊如下 :"); foreach(var p in products) { } Console.WriteLine($"{p.ProductID}, {p.productname}, {p.unitprice}, {p.unitsinstock}"); Console.WriteLine(" 請按任一鍵後離開..."); Console.ReadKey(); foreach } } } db.dispose(); // 關閉 EF 資料庫連線 11-13
ASP.NET MVC DbContext NorthwindConext DbContext NorthwindConext CRUD 11-13 LINQ EF db.dispose() NorthwindConext using() { } Dispose() // 使用 using(){...} 陳述式呼叫 Dispose() 方法 using (var DB = new NorthwindContext()) { var Products = from p in DB.Products select p; Console.WriteLine(" 產品資訊如下 :"); foreach (var p in Products) { Console.WriteLine($"{p.ProductID}, {p.productname}, {p.unitprice}, {p.unitsinstock}"); } 11-14
Entity Framework Database First & Model First 11 } Console.WriteLine(" 請按任一鍵後離開..."); Console.ReadKey(); using try/finally finally Dispose() 11-4-2 EDM CRUD EDM EDM Entity Data Model.edmx XML NorthwindDataModel.edmx <?xml version="1.0" encoding="utf-8"?> <edmx:edmx Version="3.0" xmlns:edmx="http://schemas.microsoft.com/ado/2009/11/edmx"> <!-- EF Runtime content --> <edmx:runtime> <!-- SSDL content --> <edmx:storagemodels> Storage Models( )... </edmx:storagemodels> <!-- CSDL content --> <edmx:conceptualmodels>... </edmx:conceptualmodels> Conceptual Models <!-- C-S mapping content --> <edmx:mappings> Mappings... 11-15