Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
En este tutorial, creará una aplicación de consola de .NET Core que realiza el acceso a datos en una base de datos de SQLite mediante Entity Framework Core.
Puede seguir el tutorial mediante Visual Studio en Windows o mediante la CLI de .NET en Windows, macOS o Linux.
Vea el ejemplo de este artículo en GitHub.
Prerrequisitos
Instale el siguiente software:
Creación de un nuevo proyecto
dotnet new console -o EFGetStarted
cd EFGetStarted
Instalación de Entity Framework Core
Para instalar EF Core, instale el paquete para los proveedores de bases de datos de EF Core a los que desea dirigirse. En este tutorial se usa SQLite porque se ejecuta en todas las plataformas que admite .NET. Para obtener una lista de proveedores disponibles, consulte Proveedores de bases de datos.
dotnet add package Microsoft.EntityFrameworkCore.Sqlite
Creación del modelo
Defina una clase de contexto y clases de entidad que componen el modelo.
- En el directorio del proyecto, cree Model.cs con el código siguiente.
using Microsoft.EntityFrameworkCore;
using System;
using System.Collections.Generic;
public class BloggingContext : DbContext
{
public DbSet<Blog> Blogs { get; set; }
public DbSet<Post> Posts { get; set; }
public string DbPath { get; }
public BloggingContext()
{
var folder = Environment.SpecialFolder.LocalApplicationData;
var path = Environment.GetFolderPath(folder);
DbPath = System.IO.Path.Join(path, "blogging.db");
}
// The following configures EF to create a Sqlite database file in the
// special "local" folder for your platform.
protected override void OnConfiguring(DbContextOptionsBuilder options)
=> options.UseSqlite($"Data Source={DbPath}");
}
public class Blog
{
public int BlogId { get; set; }
public string Url { get; set; }
public List<Post> Posts { get; } = new();
}
public class Post
{
public int PostId { get; set; }
public string Title { get; set; }
public string Content { get; set; }
public int BlogId { get; set; }
public Blog Blog { get; set; }
}
EF Core también puede realizar ingeniería inversa de un modelo desde una base de datos existente.
Sugerencia: Esta aplicación mantiene intencionadamente las cosas sencillas para mayor claridad. Las cadenas de conexión no deben almacenarse en el código de las aplicaciones de producción. También puede dividir cada clase de C# en su propio archivo.
Creación de la base de datos
En los pasos siguientes se usan migraciones para crear una base de datos.
Ejecute los comandos siguientes:
dotnet tool install --global dotnet-ef dotnet add package Microsoft.EntityFrameworkCore.Design dotnet ef migrations add InitialCreate dotnet ef database update
Esto instala dotnet ef y el paquete de diseño necesario para ejecutar el comando en un proyecto. El
migrations
comando genera una migración para crear el conjunto inicial de tablas para el modelo. Eldatabase update
comando crea la base de datos y aplica la nueva migración a ella.
Crear, leer, actualizar & eliminar
Abra Program.cs y reemplace el contenido por el código siguiente:
using System; using System.Linq; using Microsoft.EntityFrameworkCore; using var db = new BloggingContext(); // Note: This sample requires the database to be created before running. Console.WriteLine($"Database path: {db.DbPath}."); // Create Console.WriteLine("Inserting a new blog"); db.Add(new Blog { Url = "http://blogs.msdn.com/adonet" }); await db.SaveChangesAsync(); // Read Console.WriteLine("Querying for a blog"); var blog = await db.Blogs .OrderBy(b => b.BlogId) .FirstAsync(); // Update Console.WriteLine("Updating the blog and adding a post"); blog.Url = "https://devblogs.microsoft.com/dotnet"; blog.Posts.Add( new Post { Title = "Hello World", Content = "I wrote an app using EF Core!" }); await db.SaveChangesAsync(); // Delete Console.WriteLine("Delete the blog"); db.Remove(blog); await db.SaveChangesAsync();
Ejecución de la aplicación
dotnet run
Pasos siguientes
- Siga el tutorial de ASP.NET Core para usar EF Core en una aplicación web
- Más información sobre las expresiones de consulta LINQ
- Configura tu modelo para especificar cosas como longitud requerida y máxima
- Usa migraciones para actualizar el esquema de la base de datos después de cambiar tu modelo.