【发布时间】:2014-10-14 00:12:55
【问题描述】:
在实体框架中,您可以通过在实际类实体中使用数据注释来配置实体之间的关系:
public class Entity
{
[Key, Column(Order = 0)]
public Guid PartOfPrimaryKey { get; set; }
[Key, Column(Order = 1)]
public Guid AlsoPartOfPrimaryKey { get; set; }
}
或使用流畅的 API 配置
modelBuilder.Entity<Entity>()
.HasKey(k => new { k.PartOfPrimaryKey, k.AlsoPartOfPrimaryKey });
假设您使用了 fluent API 配置方法,您如何确保在模拟(使用 Moq)DbContext 进行单元测试时执行配置?
当我模拟DbContext 时,方法OnModelCreating 没有被执行。
Here 解释了如何使用模拟框架测试您的应用程序,但没有解释他们如何解决“配置”实体的问题。我发现的其他帖子也没有解决这个问题。我想我缺少一些简单的东西。
旁注:我也知道对 DbContext 进行单元测试可能根本不是一个好主意,因为you will use LINQ to Objects in your tests and LINQ to entites in production。但是,我仍然认为我的问题有答案。
更新:如果我改用数据注释,它可以正常工作。
【问题讨论】:
标签: c# entity-framework unit-testing mocking