Entity Framework Core is a modern object-database mapper for .NET. It supports LINQ queries, change tracking, updates, and schema migrations. EF Core works with many databases, including SQL Database (on-premises and Azure), SQLite, MySQL, PostgreSQL, and Azure Cosmos DB.
Microsoft.EntityFrameworkCore
Microsoft.EntityFrameworkCore.SqlServer
Microsoft.Data.SqlClient.Design
public static class CursoController
{
public static void ExcluirCurso(DataContext context, Curso curso)
=> context.Cursos.Remove(curso);
public static List<Curso> ListarCurso(DataContext context)
=> context.Cursos.AsNoTracking().Include(x=> x.Categoria).ToList();
public static void UpdateCurso(DataContext context, Curso curso)
=> context.Cursos.Update(curso);
public static void AdicionarCurso(DataContext context, Curso curso)
=> context.Cursos.Add(curso);
}
[Table("Categoria")]
public class Categoria
{
[Key][DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int Id { get; set; }
[Required]
[MaxLength(20)]
[Column("Name", TypeName = "NVARCHAR")]
public string Name { get; set; }
public Categoria() { }
public Categoria(string name)
=> Name = name;
public override string ToString()
=> "|\t " + Id + " - "+ Name + " \t |";
public void SalvarCategoria(DataContext context) => CategoriaController.AdicionarCategorias(context, this);
public void Update(DataContext conection, string name)
{
Name = name;
CategoriaController.UpdateCategorias(conection, this);
}
}
[Table("Curso")]
public class Curso
{
[Key][DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int Id { get; set; }
[Required]
[MaxLength(20)]
[Column("Name", TypeName = "NVARCHAR")]
public string Name { get; set; }
[ForeignKey("CategoriaId")]
public int CategoriaId { get; set; }
public Categoria Categoria { get; set; }
public Curso() { }
public Curso(string name, Categoria categoria)
{
Name = name;
Categoria = categoria;
}
public override string ToString()
=> "| \t" + Id + " - " + Name + " - " + Categoria.Name;
public void AdicionarCurso(DataContext datacontext) => CursoController.AdicionarCurso(datacontext, this);