EF Core -  Projeto Console(.NET Core)


Hoje temos um tutorial para criação de um projeto Console do tipo .NET Core usando o EF Core que acessa o banco de dados Northwind e mapeia para algumas tabelas.

Este projeto é usado como um projeto suporte para os exemplo que usam os recursos do EF Core.

Os recursos usados para criar o projeto são:

Crie um projeto Console (.NET Core) no  VS 2019 Community.

Inclua os seguinte pacotes no seu projeto:

  1. Microsoft.EntityFrameworkCore.SqlServer

  2. Microsoft.EntityFrameworkCore.Tools

Esse projeto acessa o banco de dados Northwind.mdf do SQL Server que pode ser obtido neste link e mapeia as tabelas Categories, Products, Customers e Orders.

Crie uma pasta Models no projeto.

Na pasta Models crie as seguintes classes:

1- Classe Category

    public partial class Category
    {
        public Category()
        {
            Products = new HashSet<Product>();
        }
        public int CategoryId { get; set; }
        public string CategoryName { get; set; }
        public string Description { get; set; }
        public byte[] Picture { get; set; }
        public virtual ICollection<Product> Products { get; set; }
    }           

2- Classe Product

    public partial class Product
    {
        public int ProductId { get; set; }
        public string ProductName { get; set; }
        public int? SupplierId { get; set; }
        public int? CategoryId { get; set; }
        public string QuantityPerUnit { get; set; }
        public decimal? UnitPrice { get; set; }
        public short? UnitsInStock { get; set; }
        public short? UnitsOnOrder { get; set; }
        public short? ReorderLevel { get; set; }
        public bool Discontinued { get; set; }

        public virtual Category Category { get; set; }
    }          

3- Classe Customer

    public partial class Customer
    {
        public Customer()
        {
            Orders = new HashSet<Order>();
        }
        public string CustomerId { get; set; }
        public string CompanyName { get; set; }
        public string ContactName { get; set; }
        public string ContactTitle { get; set; }
        public string Address { get; set; }
        public string City { get; set; }
        public string Region { get; set; }
        public string PostalCode { get; set; }
        public string Country { get; set; }
        public string Phone { get; set; }
        public string Fax { get; set; }

        public virtual ICollection<Order> Orders { get; set; }
    }

4- Classe Order

    public partial class Order
    {
        public int OrderId { get; set; }
        public string CustomerId { get; set; }
        public int? EmployeeId { get; set; }
        public DateTime? OrderDate { get; set; }
        public DateTime? RequiredDate { get; set; }
        public DateTime? ShippedDate { get; set; }
        public int? ShipVia { get; set; }
        public decimal? Freight { get; set; }
        public string ShipName { get; set; }
        public string ShipAddress { get; set; }
        public string ShipCity { get; set; }
        public string ShipRegion { get; set; }
        public string ShipPostalCode { get; set; }
        public string ShipCountry { get; set; }
        public virtual Customer Customer { get; set; }
    }          

5- Classe AppDbContext

    public  class AppDbContext : DbContext
    {
        public AppDbContext()
        {
        }

        public AppDbContext(DbContextOptions<AppDbContext> options)
            : base(options)
        {
        }

        public virtual DbSet<Customer> Customers { get; set; }
        public virtual DbSet<Order> Orders { get; set; }
        public virtual DbSet<Product> Products { get; set; }
        public virtual DbSet<Category> Categories { get; set; }
        protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
        {
            optionsBuilder
                .UseSqlServer(@"Data Source=Macoratti;Initial Catalog=Northwind;Integrated Security=True");
        }
    }      

Nota: A string de conexão usada aqui é apenas um exemplo, use a do seu ambiente.

Pronto o projeto esta pronto para ser usado acessando na instância do SQL Server local o banco de dados Northwind.

Pegue o projeto aqui: ConsoleEFCoreProjeto.zip (sem as referências)

Referências:


José Carlos Macoratti