Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Erro GravarUsandoEntity

Galera, boa noite. Segue o erro: Segue o erro :

Exceção Sem Tratamento: System.TypeInitializationException: O inicializador de tipo de 'Microsoft.Data.SqlClient.SNINativeMethodWrapper' acionou uma exceção. ---> System.ComponentModel.Win32Exception: Failed to load C:\Users\Gedan\Documents\x86\SNI.dll
   em Microsoft.Data.SqlClient.SNINativeMethodWrapper..cctor() na E:\agent1\_work\34\s\src\Microsoft.Data.SqlClient\netfx\src\Microsoft\Data\Interop\SNINativeMethodWrapper.cs:linha 64
   --- Fim do rastreamento de pilha de exceções internas ---
   em Microsoft.Data.SqlClient.SNINativeMethodWrapper.UnmanagedIsTokenRestricted(IntPtr token, Boolean& isRestricted)
   em Microsoft.Data.Win32NativeMethods.IsTokenRestrictedWrapper(IntPtr token) na E:\agent1\_work\34\s\src\Microsoft.Data.SqlClient\netfx\src\Microsoft\Data\Interop\SNINativeMethodWrapper.cs:linha 888
   em Microsoft.Data.ProviderBase.DbConnectionPoolIdentity.GetCurrent() na E:\agent1\_work\34\s\src\Microsoft.Data.SqlClient\netfx\src\Microsoft\Data\ProviderBase\DbConnectionPoolIdentity.cs:linha 107
   em Microsoft.Data.ProviderBase.DbConnectionPoolGroup.GetConnectionPool(DbConnectionFactory connectionFactory) na E:\agent1\_work\34\s\src\Microsoft.Data.SqlClient\netfx\src\Microsoft\Data\ProviderBase\DbConnectionPoolGroup.cs:linha 173
   em Microsoft.Data.ProviderBase.DbConnectionFactory.GetConnectionPool(DbConnection owningObject, DbConnectionPoolGroup connectionPoolGroup) na E:\agent1\_work\34\s\src\Microsoft.Data.SqlClient\netfx\src\Microsoft\Data\ProviderBase\DbConnectionFactory.cs:linha 363
   em Microsoft.Data.ProviderBase.DbConnectionFactory.TryGetConnection(DbConnection owningConnection, TaskCompletionSource`1 retry, DbConnectionOptions userOptions, DbConnectionInternal oldConnection, DbConnectionInternal& connection) na E:\agent1\_work\34\s\src\Microsoft.Data.SqlClient\netfx\src\Microsoft\Data\ProviderBase\DbConnectionFactory.cs:linha 205
   em Microsoft.Data.ProviderBase.DbConnectionInternal.TryOpenConnectionInternal(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource`1 retry, DbConnectionOptions userOptions) na E:\agent1\_work\34\s\src\Microsoft.Data.SqlClient\netfx\src\Microsoft\Data\ProviderBase\DbConnectionInternal.cs:linha 683
   em Microsoft.Data.ProviderBase.DbConnectionClosed.TryOpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource`1 retry, DbConnectionOptions userOptions) na E:\agent1\_work\34\s\src\Microsoft.Data.SqlClient\netfx\src\Microsoft\Data\ProviderBase\DbConnectionClosed.cs:linha 65
   em Microsoft.Data.SqlClient.SqlConnection.TryOpenInner(TaskCompletionSource`1 retry) na E:\agent1\_work\34\s\src\Microsoft.Data.SqlClient\netfx\src\Microsoft\Data\SqlClient\SqlConnection.cs:linha 1605
   em Microsoft.Data.SqlClient.SqlConnection.TryOpen(TaskCompletionSource`1 retry) na E:\agent1\_work\34\s\src\Microsoft.Data.SqlClient\netfx\src\Microsoft\Data\SqlClient\SqlConnection.cs:linha 1599
   em Microsoft.Data.SqlClient.SqlConnection.Open() na E:\agent1\_work\34\s\src\Microsoft.Data.SqlClient\netfx\src\Microsoft\Data\SqlClient\SqlConnection.cs:linha 1250
   em Microsoft.EntityFrameworkCore.Storage.RelationalConnection.OpenDbConnection(Boolean errorsExpected)
   em Microsoft.EntityFrameworkCore.Storage.RelationalConnection.Open(Boolean errorsExpected)
   em Microsoft.EntityFrameworkCore.Storage.RelationalConnection.BeginTransaction(IsolationLevel isolationLevel)
   em Microsoft.EntityFrameworkCore.Storage.RelationalConnection.BeginTransaction()
   em Microsoft.EntityFrameworkCore.Update.Internal.BatchExecutor.Execute(IEnumerable`1 commandBatches, IRelationalConnection connection)
   em Microsoft.EntityFrameworkCore.Storage.RelationalDatabase.SaveChanges(IList`1 entries)
   em Microsoft.EntityFrameworkCore.ChangeTracking.Internal.StateManager.SaveChanges(IList`1 entriesToSave)
   em Microsoft.EntityFrameworkCore.ChangeTracking.Internal.StateManager.SaveChanges(DbContext _, Boolean acceptAllChangesOnSuccess)
   em Microsoft.EntityFrameworkCore.SqlServer.Storage.Internal.SqlServerExecutionStrategy.Execute[TState,TResult](TState state, Func`3 operation, Func`3 verifySucceeded)
   em Microsoft.EntityFrameworkCore.ChangeTracking.Internal.StateManager.SaveChanges(Boolean acceptAllChangesOnSuccess)
   em Microsoft.EntityFrameworkCore.DbContext.SaveChanges(Boolean acceptAllChangesOnSuccess)
   em Microsoft.EntityFrameworkCore.DbContext.SaveChanges()
   em Alura.Loja.Testes.ConsoleApp.Program.GravarUsandoEntity() na C:\Users\Gedan\Documents\C#\ORM\Alura.Loja\Alura.Loja.Testes.ConsoleApp\Program.cs:linha 27
   em Alura.Loja.Testes.ConsoleApp.Program.Main(String[] args) na C:\Users\Gedan\Documents\C#\ORM\Alura.Loja\Alura.Loja.Testes.ConsoleApp\Program.cs:linha 14
Pressione qualquer tecla para continuar. . .

E o meu código está de acordo com o da aula. Podem me ajudar por favor?!

2 respostas
solução!

Olá Gedan, como vai?

De acordo com a documentação, essa exceção ocorre: Um construtor estático, se houver, é chamado automaticamente pelo tempo de execução antes de criar uma nova instância de um tipo.

Você depurou o código para ver onde está parando e ocorrendo o erro?

Se quiser, pode compartilhar seu código para que possamos dar uma olhada.

No aguardo!

Olá Fabiano !

Consegui resolver alterando a declaração da classe para publica, onde estava como "Internal"

namespace Alura.Loja.Testes.ConsoleApp
{
    public class Produto
    {
        public int Id { get; internal set; }
        public string Nome { get; internal set; }
        public string Categoria { get; internal set; }
        public double Preco { get; internal set; }
    }
}

Estava estourando um erro na qual eu não havia notado quando chamava referenciava o Produto no DbSet.

Obrigado pela Ajuda !

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software