Entity Framework for Visual Basic .NET

This section provides comprehensive documentation for using Entity Framework (EF) with Visual Basic .NET. Entity Framework is an object-relational mapper (ORM) that enables developers to work with relational data using domain-specific objects, eliminating the need for most of the data-access code they typically need to write.

Getting Started with Entity Framework

Learn the fundamental concepts and set up your development environment for Entity Framework in Visual Basic.

1. Introduction to Entity Framework

Understand what Entity Framework is, its benefits, and its core components like the Entity Data Model (EDM).

2. Installation and Setup

Steps to install the necessary NuGet packages for Entity Framework in your Visual Basic project.


PM> Install-Package EntityFramework
            

3. Creating Your First Entity Data Model

Learn how to create an EDM using either the "Database First" or "Code First" approach.

Database First Approach

Generate an EDM from an existing database.

Code First Approach

Define your domain classes, and EF will create the database schema for you.

Core Concepts

Delve deeper into the essential features and functionalities of Entity Framework.

1. DbContext

The primary class for interacting with the EF data store. It represents a session with the database and allows you to query and save data.


Public Class MyDbContext
    Inherits DbContext

    Public Sub New()
        MyBase.New("name=MyConnectionString") ' Or your connection string name
    End Sub

    Public Property Products As DbSet(Of Product)
    Public Property Orders As DbSet(Of Order)

    Protected Overrides Sub OnModelCreating(modelBuilder As DbModelBuilder)
        ' Configure your model here
        modelBuilder.Entity(Of Product)().Property(Function(p) p.Name).IsRequired()
    End Sub
End Class
            

2. DbSet

Represents a collection of all entities in the data store that are of a particular type, or can be queried from the data store. It's the gateway to querying and manipulating data.

3. Entities and Properties

Define your business objects (entities) with properties that map to database columns.


Public Class Product
    Public Property ProductID As Integer
    Public Property Name As String
    Public Property Price As Decimal
    Public Property Category As String
End Class
            

4. Migrations

Manage changes to your data model and database schema over time using EF Migrations.


PM> Enable-Migrations
PM> Add-Migration InitialCreate
PM> Update-Database
            

Data Querying

Learn how to retrieve data efficiently using LINQ to Entities.

1. Simple Queries

Fetch all records or filter data based on simple criteria.


Using dbContext As New MyDbContext()
    Dim allProducts = dbContext.Products.ToList()
    Dim expensiveProducts = dbContext.Products.Where(Function(p) p.Price > 50).ToList()
End Sub
            

2. Filtering, Sorting, and Projection

Apply complex filtering, sort results, and select specific properties.

3. Loading Related Data (Eager and Lazy Loading)

Efficiently load related entities to avoid N+1 query problems.

Eager Loading with `Include`


Dim productsWithOrders = dbContext.Products.Include(Function(p) p.Orders).ToList()
            

Data Manipulation

Discover how to add, update, and delete data in your database.

1. Adding New Entities


Dim newProduct As New Product() With {
    .ProductID = 101,
    .Name = "Wireless Mouse",
    .Price = 25.99,
    .Category = "Electronics"
}
dbContext.Products.Add(newProduct)
dbContext.SaveChanges()
            

2. Updating Existing Entities


Dim productToUpdate = dbContext.Products.Find(101)
If productToUpdate IsNot Nothing Then
    productToUpdate.Price = 27.50
    dbContext.SaveChanges()
End If
            

3. Deleting Entities


Dim productToDelete = dbContext.Products.Find(101)
If productToDelete IsNot Nothing Then
    dbContext.Products.Remove(productToDelete)
    dbContext.SaveChanges()
End If
            

Advanced Topics

Explore more advanced features for robust application development.

Note: Entity Framework Core is the latest generation of Entity Framework and is recommended for new projects. This documentation focuses on the EF6 version, commonly used with older .NET Framework projects. For EF Core documentation, please refer to the Entity Framework Core section.
Tip: Utilize IntelliSense and code completion extensively when working with Entity Framework and LINQ queries to avoid syntax errors and discover available methods.