3

使用代码首先使用努力 EF6 不会填充计算值。我有一个计算的日期时间字段(FechaCreacion)。如何在 Effort 中模拟它,以便在 saveChanges() 之后填充 DateTime.Now ?

这篇文章Using Effort (EF Testing Tool) with Computed Column is 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 时,该字段获取空日期值。

在此处输入图像描述

4

2 回答 2

0

这似乎是 Effort 的一个问题。我在他们的 github 网站上打开了一个问题:https ://github.com/tamasflamich/effort/issues/62

于 2017-01-16T11:50:30.770 回答
0

此问题已通过最新更新修复。

您必须将全局EntityFrameworkEffortManager.UseDefaultForNotNullable标志设置为 true。

于 2019-03-10T14:55:59.387 回答