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;
}