노력 EF6을 코드와 함께 사용하면 계산 된 값이 채워지지 않습니다. 계산되는 datetime 필드 (FechaCreacion) 있습니다. Effort에서 어떻게 에뮬레이트 할 수 있습니까? 그래서 SaveChanges () 후에 DateTime.Now로 채워지십니까?
이 포스트 는 계산 된 열을 사용하여 노력 (EF 테스트 도구)을 사용하는 것이 나의 예제로서 코드 퍼스트 대신 DB 퍼스트이지만, 너무 답답한 것처럼 보인다.
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);
}
이 값은 SQLServer에서 GetDate ()로 계산됩니다.
this.Property(t => t.FechaCreacion).HasColumnName("FechaCreacion").HasDatabaseGeneratedOption(DatabaseGeneratedOption.Computed);
SQL Server에서 잘 작동하지만 단위 테스트에서 Effort를 사용하면 필드에 빈 날짜 값이 생깁니다.
이 문제는 최신 업데이트로 해결되었습니다.
글로벌 EntityFrameworkEffortManager.UseDefaultForNotNullable
플래그를 true로 설정해야합니다.