L'utilisation de effort EF6 avec le code en premier ne renseigne pas les valeurs calculées. J'ai un champ date / heure (FechaCreacion) qui est calculé. Comment puis-je l'émuler dans Effort, il est donc rempli avec DateTime.Now après saveChanges ()?
Cet article Using Effort (EF Testing Tool) avec une colonne calculée correspond à DB First au lieu de Code First, mais semble également rester sans réponse.
EffortConnection connection = (EffortConnection)DbConnectionFactory.CreateTransient();
using (var c = new ControlConfigContext(connection))
{
c.Database.CreateIfNotExists();
CambioRepositoryTestLoadData.Load(c);
string direccionMac = "FFFF";
var repo = new CambioRepository(c);
var primerConcesionarioTerminal = repo.GetPrimerConcesionarioTerminal(direccionMac);
Assert.AreEqual("terminal1", primerConcesionarioTerminal.Terminal);
}
Cette valeur est calculée dans SQLServer en tant que GetDate ()
this.Property(t => t.FechaCreacion).HasColumnName("FechaCreacion").HasDatabaseGeneratedOption(DatabaseGeneratedOption.Computed);
Dans SQL Server fonctionne bien, mais lorsque vous utilisez Effort dans les tests unitaires, le champ obtient une valeur de date vide.
Ce problème est résolu avec la dernière mise à jour.
Vous devez définir l' EntityFrameworkEffortManager.UseDefaultForNotNullable
global EntityFrameworkEffortManager.UseDefaultForNotNullable
sur true.