簡體   English   中英

為計算值的實體框架6努力進行單元測試

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM