Program.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Alura.Loja.Testes.ConsoleApp
{
class Program
{
static void Main(string[] args)
{
//GravarUsandoAdoNet();
GravarUsandoEntity();
}
private static void GravarUsandoEntity()
{
Produto p = new Produto();
p.Nome = "Harry Potter e a Ordem da Fênix";
p.Categoria = "Livros";
p.Preco = 19.89;
using (var contexto = new LojaContext())
{
contexto.Produtos.Add(p);
contexto.SaveChanges();
}
}
private static void GravarUsandoAdoNet()
{
Produto p = new Produto();
p.Nome = "Harry Potter e a Ordem da Fênix";
p.Categoria = "Livros";
p.Preco = 19.89;
using (var repo = new ProdutoDAO())
{
repo.Adicionar(p);
}
}
}
}
LojaContext.cs
using System;
using Microsoft.EntityFrameworkCore;
namespace Alura.Loja.Testes.ConsoleApp
{
public class LojaContext : DbContext
{
public DbSet<Produto> Produtos { get; set; }
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
optionsBuilder.UseSqlServer("Server=tcp:127.0.0.1,1433;Database=LojaDB;User=USER;Password=STRONG_PASSWORD;Trusted_Connection=true");
}
}
}
Erro
[ERROR] FATAL UNHANDLED EXCEPTION: System.TypeInitializationException: The type initializer for 'Microsoft.Data.SqlClient.InOutOfProcHelper' threw an exception. ---> System.EntryPointNotFoundException: GetModuleHandle assembly:<unknown assembly> type:<unknown type> member:(null)
at (wrapper managed-to-native) Microsoft.Data.Common.SafeNativeMethods.GetModuleHandle(string)
at Microsoft.Data.SqlClient.InOutOfProcHelper..ctor () [0x00006] in <66f85b345ca3400caaa2d65cb49fcb00>:0
at Microsoft.Data.SqlClient.InOutOfProcHelper..cctor () [0x00000] in <66f85b345ca3400caaa2d65cb49fcb00>:0
--- End of inner exception stack trace ---
Estou utilizando o Visual Studio for Mac e o SQL Server dentro de um container do Docker.
O erro ocorre exatamente na linha do SaveChanges().
Tentei observar em todos os métodos para ver se eu esqueci algum parâmetro ou algo nesse sentido, mas não consegui encontrar nada.
Alguma pista?