Komma igång med Entity Framework 4.0 Database First och ASP.NET 4 Web Forms (2024)

  • Artikel

förbiTom Dykstra

Exempelwebbapplikationen Contoso University visar hur man skapar ASP.NET Web Forms-applikationer med hjälp av Entity Framework 4.0 och Visual Studio 2010. Exempelapplikationen är en webbplats för ett fiktivt Contoso University. Den innehåller funktioner som studentantagning, skapande av kurser och instruktörsuppgifter.

Handledningen visar exempel i C#. Denedladdningsbart provinnehåller kod i både C# och Visual Basic.

Databas först

Det finns tre sätt att arbeta med data i Entity Framework:Databas först,Modell först, ochKod först. Denna handledning är för Database First. För information om skillnaderna mellan dessa arbetsflöden och vägledning om hur du väljer det bästa för ditt scenario, seEntity Framework Development Workflows.

Webbformulär

Denna handledningsserie använder ASP.NET Web Forms-modellen och förutsätter att du vet hur man arbetar med ASP.NET Web Forms i Visual Studio. Om du inte gör det, seKomma igång med ASP.NET 4.5 Web Forms. Om du föredrar att arbeta med ASP.NET MVC-ramverket, seKomma igång med Entity Framework med ASP.NET MVC.

Programvaruversioner

Visas i handledningenFungerar även med
Windows 7Windows 8
Visual Studio 2010Visual Studio 2010 Express för webben. Handledningen har inte testats med senare versioner av Visual Studio. Det finns många skillnader i menyval, dialogrutor och mallar.
.NET 4.NET 4.5 är bakåtkompatibel med .NET 4, men handledningen har inte testats med .NET 4.5.
Entity Framework 4Handledningen har inte testats med senare versioner av Entity Framework. Från och med Entity Framework 5 använder EF som standardDbContext APIsom introducerades med EF 4.1. EntityDataSource-kontrollen designades för att användaObjectContextAPI. För information om hur du använder EntityDataSource-kontrollen medDbContextAPI, sedetta blogginlägg.

Frågor

Om du har frågor som inte är direkt relaterade till handledningen kan du lägga upp dem påASP.NET Entity Framework-forum, denEntity Framework och LINQ to Entities forum, ellerStackOverflow.com.

Översikt

Applikationen du kommer att bygga i dessa handledningar är en enkel universitetswebbplats.

Användare kan visa och uppdatera information om elever, kurser och lärare. Några av skärmarna du skapar visas nedan.

Skapa webbapplikationen

För att starta handledningen, öppna Visual Studio och skapa sedan ett nytt ASP.NET-webbapplikationsprojekt med hjälp avASP.NET webbapplikationmall:

Den här mallen skapar ett webbapplikationsprojekt som redan innehåller en stilmall och huvudsidor:

ÖppnaSite.Masterfil och ändra "My ASP.NET Application" till "Contoso University".

Contoso University

HittaMenykontroll namngivenNavigeringsmenyoch ersätt den med följande markering, som lägger till menyalternativ för sidorna du ska skapa.

                  

ÖppnaDefault.aspxsida och ändraInnehållkontroll namngivenKroppsinnehålltill detta:

 

Välkommen till Contoso University!

Du har nu en enkel startsida med länkar till de olika sidorna som du kommer att skapa:

Skapar databasen

För dessa handledningar använder du Entity Framework-datamodelldesignern för att automatiskt skapa datamodellen baserat på en befintlig databas (ofta kalladdatabas förstnärma sig). Ett alternativ som inte tas upp i denna handledningsserie är att skapa datamodellen manuellt och sedan låta designern generera skript som skapar databasen (denmodell förstnärma sig).

För den databas-först-metoden som används i den här handledningen är nästa steg att lägga till en databas på webbplatsen. Det enklaste sättet är att först ladda ner projektet som följer med denna handledning. Högerklicka sedan påApplikationsdatamapp, väljLägg till befintligt objekt, och väljSkola.mdfdatabasfil från det nedladdade projektet.

Ett alternativ är att följa instruktionerna påSkapar skolans exempeldatabas. Oavsett om du laddar ner databasen eller skapar den, kopieraSkola.mdffil från följande mapp till din applikationsApplikationsdatamapp:

%PROGRAMFILER%\Microsoft SQL Server\MSSQL10.SQLEXPRESS\MSSQL\DATA

(Denna plats för.mdffilen förutsätter att du använder SQL Server 2008 Express.)

Om du skapar databasen från ett skript, utför följande steg för att skapa ett databasdiagram:

  1. IServer Explorer, bygga utDataanslu*tningar, bygga utSkola.mdf, HögerklickaDatabasdiagramoch väljLägg till nytt diagram.

  2. Välj alla tabeller och klicka sedanLägg till.

    SQL Server skapar ett databasdiagram som visar tabeller, kolumner i tabellerna och relationer mellan tabellerna. Du kan flytta runt borden för att organisera dem som du vill.

  3. Spara diagrammet som "SchoolDiagram" och stäng det.

Om du laddar nerSkola.mdffil som följer med denna handledning kan du se databasdiagrammet genom att dubbelklickaSkoldiagramunderDatabasdiagramiServer Explorer.

Diagrammet ser ut ungefär så här (tabellerna kan vara på olika platser än vad som visas här):

Skapar Entity Framework Data Model

Nu kan du skapa en Entity Framework-datamodell från denna databas. Du kan skapa datamodellen i programmets rotmapp, men för den här handledningen placerar du den i en mapp som heterDAL(för Data Access Layer).

ILösningsutforskare, lägg till en projektmapp med namnetDAL(se till att det är under projektet, inte under lösningen).

Högerklicka påDALmapp och välj sedanLägg tillochNytt föremål. UnderInstallerade mallar, VäljData, VäljADO.NET Entity Data Modelmall, namnge detSchoolModel.edmx, och klicka sedanLägg till.

Detta startar guiden Entity Data Model Wizard. I det första steget i guidenGenerera från databasalternativet är valt som standard. KlickNästa.

I denVälj din dataanslu*tningsteg, lämna standardvärdena och klickaNästa. Skoldatabasen är vald som standard och anslu*tningsinställningen sparas iWeb.configfil somSkolEntities.

I denVälj dina databasobjektguiden, välj alla tabeller utomsis diagram(som skapades för diagrammet du genererade tidigare) och klicka sedanAvslu*ta.

När den är klar med att skapa modellen visar Visual Studio dig en grafisk representation av Entity Framework-objekten (entiteterna) som motsvarar dina databastabeller. (Som med databasdiagrammet kan placeringen av enskilda element skilja sig från vad du ser i den här illustrationen. Du kan dra runt elementen för att matcha illustrationen om du vill.)

Utforska Entity Framework Data Model

Du kan se att entitetsdiagrammet ser väldigt likt ut databasdiagrammet, med ett par skillnader. En skillnad är tillägget av symboler i slu*tet av varje association som indikerar typen av association (tabellrelationer kallas entitetsassociationer i datamodellen):

  • En en-till-noll-eller-ett-association representeras av "1" och "0..1".

    I det här fallet, aPersonentitet kan eller kanske inte är associerad med enKontorsuppdragentitet. EnKontorsuppdragenheten måste vara associerad med enPersonentitet. Med andra ord kan en instruktör tilldelas eller inte tilldelas ett kontor, och vilket kontor som helst kan tilldelas endast en instruktör.

  • En en-till-många-förening representeras av "1" och "*".

    I det här fallet, aPersonenheten kan ha associerats eller inteStudentGradeenheter. AStudentGradeenhet måste vara associerad med enPersonentitet.StudentGradeenheter representerar faktiskt inskrivna kurser i denna databas; om en student är inskriven på en kurs och det inte finns något betyg än,Kvalitetegendomen är null. Med andra ord, en student kanske inte är inskriven i några kurser ännu, kan vara inskriven i en kurs eller kan vara inskriven i flera kurser. Varje betyg i en anmäld kurs gäller endast en elev.

  • En många-till-många-förening representeras av "*" och "*".

    I det här fallet, aPersonenheten kan ha associerats eller inteKursenheter, och det omvända är också sant: aKursenheten kan ha associerats eller intePersonenheter. Med andra ord kan en instruktör undervisa i flera kurser, och en kurs kan undervisas av flera instruktörer. (I den här databasen gäller detta förhållande endast för instruktörer; det länkar inte studenter till kurser. Studenter länkas till kurser genom tabellen StudentGrades.)

En annan skillnad mellan databasdiagrammet och datamodellen är tilläggetNavigeringsegenskaperavsnitt för varje enhet. En navigeringsegenskap för en enhet refererar till relaterade enheter. Till exempelKurserfastighet i enPersonenheten innehåller en samling av allaKursenheter som är relaterade till detPersonentitet.

Ytterligare en skillnad mellan databasen och datamodellen är frånvaron avKursinstruktörassociationstabell som används i databasen för att länkaPersonochKurstabeller i ett många-till-många-förhållande. Navigeringsegenskaperna gör att du kan bli relateradKursenheter frånPersonenhet och närståendePersonenheter frånKursenhet, så det finns inget behov av att representera associationstabellen i datamodellen.

För denna handledning, anta attFörnamnkolumn avPersonTabellen innehåller faktiskt både en persons förnamn och mellannamn. Du vill ändra namnet på fältet för att återspegla detta, men databasadministratören (DBA) kanske inte vill ändra databasen. Du kan ändra namnet påFörnamnegenskapen i datamodellen, samtidigt som dess databasekvivalent lämnas oförändrad.

Högerklicka i designernFörnamniPersonenhet och välj sedanDöp om.

Skriv in det nya namnet "FirstMidName". Detta ändrar hur du refererar till kolumnen i kod utan att ändra databasen.

Modellwebbläsaren tillhandahåller ett annat sätt att visa databasstrukturen, datamodellstrukturen och mappningen mellan dem. För att se det högerklickar du på ett tomt område i enhetsdesignern och klickar sedanModell webbläsare.

DeModell webbläsarerutan visar en trädvy. (DeModell webbläsarerutan kan vara dockad medLösningsutforskarerutan.) DenSkolmodellnoden representerar datamodellstrukturen ochSchoolModel.Storenoden representerar databasstrukturen.

Bygga utSchoolModel.Storeexpandera för att se tabellernaTabeller / vyerför att se tabeller och expandera sedanKursför att se kolumnerna i en tabell.

Bygga utSkolmodell, bygga utEntitetstyper, och expandera sedanKursnod för att se enheterna och egenskaperna inom enheterna.

I antingen designern ellerModell webbläsarerutan kan du se hur Entity Framework relaterar objekten för de två modellerna. Högerklicka påPersonenhet och väljTabellmappning.

Detta öppnarKartläggningsdetaljerfönster. Observera att det här fönstret låter dig se databaskolumnenFörnamnär mappad tillFirstMidName, vilket är vad du döpte om det till i datamodellen.

Entity Framework använder XML för att lagra information om databasen, datamodellen och mappningarna mellan dem. DeSchoolModel.edmxfilen är faktiskt en XML-fil som innehåller denna information. Designern återger informationen i ett grafiskt format, men du kan också se filen som XML genom att högerklicka på.edmxfil inLösningsutforskare, klickarÖppna medoch väljaXML (text) Editor. (Datamodelldesignern och en XML-redigerare är bara två olika sätt att öppna och arbeta med samma fil, så du kan inte låta designern öppna och öppna filen i en XML-redigerare samtidigt.)

Du har nu skapat en webbplats, en databas och en datamodell. I nästa genomgång kommer du att börja arbeta med data med hjälp av datamodellen och ASP.NETEntityDataSourcekontrollera.

Nästa

Komma igång med Entity Framework 4.0 Database First och ASP.NET 4 Web Forms (2024)

FAQs

How do I update Entity Framework model from database first in .NET Core? ›

Right-click anywhere on the design surface, and select Update Model from Database. In the Update Wizard, select the Refresh tab and then select Tables > dbo > Student. Click Finish. After the update process is finished, the database diagram includes the new MiddleName property.

How to use Entity Framework in ASP.NET web forms? ›

Create an ADO.NET Entity Data Model
  1. Right-click the project and select Add → New Item…. ...
  2. Specify OrdersContext as the model name and select the Code First from database model type in the invoked wizard.
  3. Select the added OrdersContext string as a data connection for the created model.

What is Entity Framework database first? ›

Database First allows you to reverse engineer a model from an existing database. The model is stored in an EDMX file (. edmx extension) and can be viewed and edited in the Entity Framework Designer. The classes that you interact with in your application are automatically generated from the EDMX file.

What is Entity Framework in ASP.NET ASPX? ›

Entity Framework (EF) is an object-relational mapper that enables . NET developers to work with relational data using domain-specific objects. It eliminates the need for most of the data-access code that developers usually need to write. Get it: Add this to your project and start taking advantage of this powerful O/RM.

How to use database first approach in asp net core? ›

This article is about Entity Framework with . Net Core MVC, Database-First approach.
  1. Step 1: Create an ASP.NET Core MVC application.
  2. Step 2: Reverse engineer Entity model from database (database first approach for entity)
  3. Step 3: Scaffold Controller with View using Entity Framework.
  4. Step 4: Run and Test app.
May 31, 2023

What is database first approach in asp net? ›

The Database First Approach provides an alternative to the Code First and Model First approaches to the Entity Data Model. It creates model codes (classes, properties, DbContext etc.) from the database in the project and those classes become the link between the database and controller.

What is difference between ASP NET and Entity Framework? ›

These are 2 different things as mentioned before. Entity Framework is an ORM -> a Mapper to help you get data. asp.net is a framework to STRUCTURE your project ,with Objects and Classes, not related to entity.

Why we use Entity Framework in asp net? ›

With the Entity Framework, developers can work at a higher level of abstraction when they deal with data, and can create and maintain data-oriented applications with less code than in traditional applications.

Can you use Entity Framework with .NET framework? ›

The recommended way to use Entity Framework 6 in an ASP.NET Core application is to put the EF6 context and model classes in a class library project that targets . NET Framework. Add a reference to the class library from the ASP.NET Core project. See the sample Visual Studio solution with EF6 and ASP.NET Core projects.

Which Entity Framework approach is better? ›

As in this diagram, if we already have domain classes, the Code First approach is best suited for our application. The same as if we have a database, Database First is a good option. If we don't have model classes and a database and require a visual entity designer tool then Model First is best suited.

Which is better code first or database first? ›

Flexibility: Code First gives developers more control and flexibility as they are in charge of the code, and any changes in the database schema can be managed through code. Complexity: For complex databases, using Database First can be quicker and more straightforward as the model is generated automatically.

What is the difference between MVC and Entity Framework? ›

MVC is framework mainly concentrates on how you deliver a webpage from server to client. Entity framework is an object relational mapper which helps you to abstract different types of databases (MSSQL,MySQL etc) and helps querying objects instead of having sql strings in our project. Hope this helps!

How to use Entity Framework in asp net c#? ›

Entity Framework is used in the following scenarios.
  1. Create an MVC web app.
  2. Set up the site style.
  3. Install Entity Framework 6.
  4. Create the data model.
  5. Create the database context.
  6. Initialize DB with test data.
  7. Set up EF 6 to use LocalDB.
  8. Create controller and views.
Feb 20, 2023

Is Entity Framework an API? ›

Entity Framework API (EF6 & EF Core) includes the ability to map domain (entity) classes to the database schema, translate & execute LINQ queries to SQL, track changes occurred on entities during their lifetime, and save changes to the database.

How to update Entity Framework code first from database? ›

Project -> Add New Item…
  1. Project -> Add New Item…
  2. Select Data from the left menu and then ADO.NET Entity Data Model.
  3. Enter BloggingContext as the name and click OK.
  4. This launches the Entity Data Model Wizard.
  5. Select Code First from Database and click Next.
Mar 9, 2022

How to update data in database using Entity Framework Code First? ›

Run the Update-Database command in a Package Manager console. Code First Migrations will compare the migrations in our Migrations folder with the ones that have been applied to the database. It will see that the MigrationForRoleInEmp migration needs to be applied and run it.

How to update Entity Framework Core version? ›

Update the tools

Use dotnet tool update --global dotnet-ef to update the global tools to the latest available version. If you have the tools installed locally in your project use dotnet tool update dotnet-ef . Install a specific version by appending --version <VERSION> to your command.

How do I update Entity Framework? ›

Updating the entity involves getting the entity from the database, make the necessary changes, and then call the SaveChanges to persist the changes in the database. There are two Scenario's that arise, when you update the data to the database.

References

Top Articles
Latest Posts
Article information

Author: Tish Haag

Last Updated:

Views: 5947

Rating: 4.7 / 5 (67 voted)

Reviews: 90% of readers found this page helpful

Author information

Name: Tish Haag

Birthday: 1999-11-18

Address: 30256 Tara Expressway, Kutchburgh, VT 92892-0078

Phone: +4215847628708

Job: Internal Consulting Engineer

Hobby: Roller skating, Roller skating, Kayaking, Flying, Graffiti, Ghost hunting, scrapbook

Introduction: My name is Tish Haag, I am a excited, delightful, curious, beautiful, agreeable, enchanting, fancy person who loves writing and wants to share my knowledge and understanding with you.