Olá Marcos, tudo certo?
Vou tentar explicar passo a passo como está funcionando esse método. De antemão, se continuar com alguma dúvida, sinta-se confortável para questionar novamente.
Na Interface ICadastroRepository
, já declaramos obrigatório a utilização do método nas classes que trazem essa Interface. Note que este método trás a class Cadastro
tanto no tipo, quanto em um dos campo:
Cadastro Update(int cadastroId, Cadastro novoCadastro);
Agora na class CadastroRepository
, onde herdamos a Interface ICadastroRepository
. Iremos utilizar o método obrigatório. Logo no inicio, declaramos a variável cadastroDB
:
var cadastroDB = dbSet.Where(c => c.Id == cadastroId).SingleOrDefault();
O dbSet
irá seguir com o novo cadastro, mas antes ele irá verificar se esse Id
já existe. O Where
irá trabalhar como uma espécie de filtro para o Id
: Where(c => c.Id == cadastroId)
. Já o SingleOrDefault()
, irá trabalhar para validar esse filtro do Where
, verificando se realmente esse Id
é único.
A seguir, temos apensas um if
, fazendo uma pequena validação para caso de null
:
if (cadastroDB == null)
{
throw new ArgumentNullException("cadastro");
}
Se tudo ocorreu bem até aqui, o programa irá fazer o Update
do novo cadastro. Agora estamos utilizando o segundo campo do método Cadastro novoCadastro
:
cadastroDB.Update(novoCadastro);
Para finalizar, iremos fazer o SaveChanges()
desse novo cadastro:
context.SaveChanges();
Abraços e bons estudos!