Usuário com melhor resposta
RESOLVIDO - Override no método SaveChanges

Pergunta
-
Fala pessoal!!!!!
Estou seguindo alguns tutoriais para aprender a desenvolver em C#.... no caso, estou tentando aprender DDD e tal....
Em um dos tutoriais, me deparei com uma substituição do método SaveChanges.
public override int SaveChanges() { foreach(var entry in ChangeTracker.Entries().Where(entry => entry.Entity.GetType().GetProperty("DtRegistro") != null)) { if(entry.State == EntityState.Added) { entry.Property("DtRegistro").CurrentValue = DateTime.Now; } if(entry.State == EntityState.Modified) { entry.Property("DtRegistro").IsModified = false; } } return base.SaveChanges(); }
Minha dúvida está em relação ao nome do campo.... minhas tabelas terão uma data de registro, mas para cada tabela o nome do campo mudará!!!
Existe a possibilidade de passar uma variável ou mesmo um LIKE, algo do tipo, "Data" + "%Registro"
Não sei se me fiz entender.....
Desde já agradeço!!!!
- Editado CrisMaleta01 quarta-feira, 24 de janeiro de 2018 00:28
Respostas
-
Como voce viu o "DtRegistro" é uma string. Voce pode fazer algo assim:
string DtRegistro=funcaoBuscaCampoDataRegitro(Entidade);
entry.Property(DtRegistro).CurrentValue = DateTime.Now;
A unica coisa que voce tem que fazer é criar uma regra de como bustar a data de registro segundo a tabela (entidade)
Por isso esses campos de auditoria sao iguais em todas as tabelas... dessa voce consegue centralizar as funcoes de auditoria.
att
William John Adam Trindade
Analyste-programmeur
Sogi Informatique ltée
If you found this post helpful, please "Vote as Helpful". If it actually answered your question, remember to "Mark as Answer". Se achou este post útil, por favor clique em "Votar como útil". Se por acaso respondeu sua dúvida, lembre de "Marcar como Resposta".- Marcado como Resposta CrisMaleta01 terça-feira, 23 de janeiro de 2018 19:09
- Editado William John Adam TrindadeModerator terça-feira, 23 de janeiro de 2018 19:23
Todas as Respostas
-
Como voce viu o "DtRegistro" é uma string. Voce pode fazer algo assim:
string DtRegistro=funcaoBuscaCampoDataRegitro(Entidade);
entry.Property(DtRegistro).CurrentValue = DateTime.Now;
A unica coisa que voce tem que fazer é criar uma regra de como bustar a data de registro segundo a tabela (entidade)
Por isso esses campos de auditoria sao iguais em todas as tabelas... dessa voce consegue centralizar as funcoes de auditoria.
att
William John Adam Trindade
Analyste-programmeur
Sogi Informatique ltée
If you found this post helpful, please "Vote as Helpful". If it actually answered your question, remember to "Mark as Answer". Se achou este post útil, por favor clique em "Votar como útil". Se por acaso respondeu sua dúvida, lembre de "Marcar como Resposta".- Marcado como Resposta CrisMaleta01 terça-feira, 23 de janeiro de 2018 19:09
- Editado William John Adam TrindadeModerator terça-feira, 23 de janeiro de 2018 19:23
-