System.Reflection.TargetException:對象與目標類型不匹配。如何運行GetMethod.Invoke?我得到錯誤
public class Parameter : BaseEntity
{
...
...
public override void Map(ModelBuilder modelBuilder)
{
modelBuilder.Entity<Parameter>(opt =>
{
opt.ToTable("Parameter");
opt.HasKey(x => x.Id);
opt.Property(x => x.AutoId).UseSqlServerIdentityColumn();
opt.HasAlternateKey(x => x.AutoId);
});
}
}
public class DataContext<T> : DbContext where T : BaseEntity
{
...
...
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
Type t = typeof(T);
t.GetMethod("Map").Invoke(this, new object[] { modelBuilder }); // this line *****
}
}
T被稱爲Parameter類。和(/ /這行*****)方面給我錯誤。
System.Reflection.TargetException:Object與目標類型不匹配。
我該如何運行?
那麼,你用'this'調用它,'this'不是'Parameter',而是'DataContext',這就是爲什麼它不起作用。你有一個你想要使用的'Parameter'的實例嗎? –
其實我試過't'而不是'this'。我得到了同樣的錯誤。我想寫T在那裏,它必須是通用的。我有x20類更像'Parameter',他們有'Map' void。我必須打電話給他們來運行這個項目。 –
委託給你的代碼't'是'T'的'Type',而不是'T'的實例。 –