DbSet<T>.Add()
我可以通过反射获取和调用该方法 :
void AddNewEntity (DbContext db, string entityType, object newEntity)
{
PropertyInfo dbSetProp = typeof(Models.Entities)
.GetPrperty(entityType);
MethodInfo dbSetAddMethod = dbSetProp
.PropertyType
.GetMethod(nameof(DbSet<object>.Add));
object dbSet = dbSetProp.GetValue(db);
dbSetAddMethod.Invoke(dbSet, new object[] { newEntity });
}
以及如何获取和调用该方法Count
?问题是它是一种扩展方法,但是如何解决这个问题呢?
正如@AndreyNOP 正确指出的那样,扩展方法本质上是来自
Queryable.Count()
. 有两种方法重载,参数数量不同。因此,如果您需要调用的类似物DbSet<T>.Count()
(不带参数),那么选择是过度重载Count<TSource>(this IQueryable<TSource> source);
(带一个参数)。