我将 Entity Framework Code First 与从 EntityTypeConfiguration 继承的地图类一起使用。我这样做是为了封装我使用 Code First fluent API 来配置实体。
我希望能够检查在这些类中所做的配置设置,以便我可以在集成测试中应用其中的一些。我正在使用 AutoFixture 快速创建实体,最终我想找到一种方法来进行一些自定义,这些自定义使用我的 EntityTypeConfiguration 类中的配置。
但首先,我需要弄清楚如何将它们拉出来......
这是一个用例示例:
public class Widget { public string Name { get; set; } }
public class WidgetMap : EntityTypeConfiguration<Widget> {
this.Property(w => w.Name).HasMaxLength(10);
}
我该如何做这样的伪代码:
public Widget GetWidgetHonoringStringLengthConstraints(WidgetMap map) {
var w = new Widget();
int maxLength = map.GetProperty(p => p.Name).GetMaxLength(); //MAGIC
string name = new Guid().SubString(0, maxLength);
w.Name = name;
return w;
}