有效我有以下兩種實體框架的包括如下的方法:獲取方法的MethodInfo的 - 該操作僅在泛型類型
public static IIncludableQueryable<TEntity, TProperty> Include<TEntity, TProperty>(
[NotNullAttribute] this IQueryable<TEntity> source,
[NotNullAttribute] Expression<Func<TEntity, TProperty>> navigationPropertyPath)
where TEntity : class;
public static IQueryable<TEntity> Include<TEntity>(
[NotNullAttribute] this IQueryable<TEntity> source,
[NotNullAttribute][NotParameterized] string navigationPropertyPath)
where TEntity : class;
我需要得到MethodInfo的兩種方法。這是第一個我用:
MethodInfo include1 = typeof(EntityFrameworkQueryableExtensions)
.GetMethods().First(x => x.Name == "Include" && x.GetParameters()
.Select(y => y.ParameterType.GetGenericTypeDefinition())
.SequenceEqual(new[] { typeof(IQueryable<>), typeof(Expression<>) }));
這個工作,但是當我嘗試使用,以獲得第二下列操作之一:
MethodInfo include2 = typeof(EntityFrameworkQueryableExtensions)
.GetMethods().First(x => x.Name == "Include" && x.GetParameters()
.Select(y => y.ParameterType.GetGenericTypeDefinition())
.SequenceEqual(new[] { typeof(IQueryable<>), typeof(String) }));
我得到的錯誤:
This operation is only valid on generic types
什麼時我錯過了?
'string navigationPropertyPath'是通用的嗎? – CodeCaster
不,這只是一個字符串...我在上面添加了方法簽名。 –
'ParameterType.GetGenericTypeDefinition()'如何返回'typeof(String)'? –