För denna artikel behövs
Börja med att se till så att du har allt det ovanstående installerat och klart innan du går vidare. Installerar du allt på nytt är det även rekommenderat att du startar om datorn. Öppna sedan Visual Studio och skapa en ny ASP.NET MVC Web Application. Börja med att ta bort allt i mapparna Controllers och Views utom mappen Shared men töm även denna så att vi kan börja från scratch. Nästa steg är att skapa tabellen som vi ska använda. Jag valde att kalla min tabell för blogg_post. Denna tabell ska se ut på följande vis
| Fältnamn | Typ | Övrigt |
| id | INTEGER | Primary Key |
| posttitle | VARCHAR(100) | |
| postbody | TEXT | |
| dateposted | DATETIME | |
Sedan skapar vi vår entitydatamodel-fil. Detta gör du genom att högerklicka på mappen Models –> add –> New Item.
Välj ADO.NET Entity Data Model
Knappa in ett passande namn och klicka sedan på Add. I nästa steg väljer du “Generate from Database” och klickar next.
I nästa fönster som kommer upp klickar du på “New Connection” och väljer “MySql Database” och klickar på “Continue”.
Fyll i dina uppgifter till MySQL-databasen och klicka på “OK”. Om Visual Studio frågar om du vill spara lösenordet i din connection-string så är det bara att välja “Yes” och klicka sedan på “Next”.
I nästa steg så expanderar du fliken “Tables” och klickar i din tabell som du skapade tidigare och klickar på “Finish”.
Din datamodell skapas då och “we are ready to roll”.
Högerklicka på mappen “Controllers”, välj sedan “Add” –> “Controller” och döp denna till “HomeController”. Klicka även i rutan “Add action methods for……” och klicka på “OK”.
I vår Index-action så kommer vi att hämta samtliga inlägg i vår tabell och visa dem. Börja med att importera din namnrymd som innehåller alla modeller. Vanligtvis heter denna projektnamn.Models. Importera även System.Data.Linq.
using MVC_EF_MySQL.Models;
using System.Data.Linq;
Sedan i vår Index-action skriver vi följande kod för att hämta alla inlägg.
using(web37831_devEntities context = new web37831_devEntities())
{
List<blogg_post> post = (from p in context.blogg_post
select p).ToList();
return View(post);
}
Nästa steg är att skapa vår vy. Detta gör vi genom att högerklicka på vår Index-action och välja “Add View”.
Låt vynamnet vara och välj att den ska vara starkt typad (strongly-typed) mot i mitt fall klassen MVC_EF_MySQL.Models.blogg_post. I listan för “View Content” väljer du “List”. Klicka sedan på “Add”.
Nästa steg är att skapa sidan för att skapa ett inlägg. Om du kollar i “HomeController.cs” så kan du se att det finns 2st “Create”-actions. Den första levererar bara själva vyn och den andra anropas endast om det är en “Post” som sker mot servern. I denna andra “Create”-action ska vi nu skriva lite kod för att spara ett inlägg. Denna ser ut som följer.
using (web37831_devEntities context = new web37831_devEntities())
{
blogg_post post = new blogg_post();
post.posttitle = collection["PostTitle"];
post.postbody = collection["PostBody"];
post.dateposted =DateTime.Now;
context.AddToblogg_post(post);
context.SaveChanges();
}
return RedirectToAction("Index");
Upprepa nu stegen som du tog för att skapa Index-vyn men nu istället för “Create” och klicka på “Add”.
I denna fil så tar du bort de två fälten för ID och DatePosted då vi vill ange detta själva. Ändra även från Html.TextBox till Html.TextArea på PostBody. Detta gör att det renderas en textarea istället för en textbox. Du bör ha kvar något som ut i stil med detta innanför using(Html.BeginForm())
<fieldset>
<legend>Fields</legend>
<p>
<label for="postbody">postbody:</label>
<%= Html.TextArea("postbody") %>
<%= Html.ValidationMessage("postbody", "*") %>
</p>
<p>
<label for="posttitle">posttitle:</label>
<%= Html.TextBox("posttitle") %>
<%= Html.ValidationMessage("posttitle", "*") %>
</p>
<p>
<input type="submit" value="Create" />
</p>
</fieldset>
Det var allt, du kan nu provköra projektet. Förstasidan listar dina inlägg och anger du sökvägen /home/create så kan du även skriva inlägg. Vill du att det ska se snyggare ut är det bara att redigera koden i dina vyer.
Så enkelt var det att komma igång med ASP.NET MVC och Entity Framwork med MySQL.
På återseende.