我想使用反射调用以下代码:
modelBuilder.Entity<CardPayment>().Map(m =>
{
m.MapInheritedProperties();
m.ToTable("CardPayments");
});
我正在尝试以下方法:
var entityMethod = typeof(DbModelBuilder).GetMethod("Entity");
entityMethod.MakeGenericMethod(type)
.Invoke(modelBuilder, new object[] { });
如何拨打&#34; 地图&#34;方法提供&#34; Map&#34;方法。 如何调用&#34; MapInheritedProperties &#34;和&#34; ToTable &#34; &#34; Map&#34;中的方法方法
由于
答案 0 :(得分:0)
您需要从entityMethod.MakeGenericMethod(type).Invoke(modelBuilder, new object[] { });
捕获返回对象,然后您可以动态调用Map
:
var mapLambda =
/* you'll need to fix the typing here */(m) =>
{
m.MapInheritedProperties();
m.ToTable("CardPayments");
};
var entityMethod = typeof(DbModelBuilder).GetMethod("Entity");
var entityResult =
entityMethod.MakeGenericMethod(type)
.Invoke(modelBuilder, new object[] { });
//invoke Map
entityResult.GetType().GetMethod("Map").Invoke(entityResult, new object[]{ mapLambda });