![](/img/trans.png)
[英]Unit testing with database created by Entity Framework with Effort and dbContext
[英]unit testing with effort for entity framework 6 with computed values
使用EF6首先使用代碼不會填充計算值。 我有一個計算的日期時間字段(FechaCreacion)。 我怎樣才能在Effort中模擬它,所以在saveChanges()之后用DateTime.Now填充它?
這篇文章使用Effort(EF測試工具)和計算列是DB First而不是Code First作為我的例子,但似乎也沒有答案。
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時,該字段獲取空日期值。
這似乎是Effort的一個問題。 我在他們的github網站上打開了一個問題: https : //github.com/tamasflamich/effort/issues/62
此問題已通過最新更新修復。
您必須將全局EntityFrameworkEffortManager.UseDefaultForNotNullable
標志設置為true。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.