【问题标题】:Customize autofixture property with previously set property使用先前设置的属性自定义 autofixture 属性
【发布时间】:2020-06-19 18:24:20
【问题描述】:

在 EF(实体框架)中,引用子实体和表使用的键映射为父实体的属性是一种常见模式。

当使用 autofixture 模拟父实体时,我想找到一种方法来使用之前设置的外键设置子实体的主键

_fixture.Build<Parent>()
.With(x=>x.ChildId)
.With(x=>x.Child, 
    _fixture.Build<Child>()
        .With(child=>child.Key,parent => parent.ChildId) //This is not supported in AutoFixture
        .Create()
    )
.Create();

【问题讨论】:

    标签: c# autofixture


    【解决方案1】:

    您能否提供有关您要解决的问题的更多信息?您使用的是 EF 还是 EF Core?解决方案可能会有所不同,具体取决于您使用的解决方案。

    在最新版本的 Entity Framework 中,AFAIK 在将实体保存到数据库之前不会获得密钥。在这种情况下,您可以使用 Microsoft 提供的数据库提供程序之一进行单元测试。在您的情况下,由于您使用 EF 的关系功能,您可能希望使用 SQLite 提供程序。保存实体后,外键和导航属性应包含所有必要的数据。 https://docs.microsoft.com/en-us/ef/core/miscellaneous/testing/sqlite

    如果您想在 EF Core 和 AutoFixture 之间更轻松,可以使用包 EntityFrameworkCore.AutoFixture

    【讨论】:

      猜你喜欢
      • 2015-08-09
      • 1970-01-01
      • 1970-01-01
      • 2012-07-02
      • 2021-09-02
      • 2021-07-08
      • 2019-04-17
      • 2012-12-17
      相关资源
      最近更新 更多