我有一个iQueryable数据集。
我希望能够根据名称确定数据类型。
我正在对视图模型进行linq查询,我希望从结果查询中获取名称列
答案 0 :(得分:2)
IQueryable q = ...;
if (q.ElementType.GetProperty("PropertyName").PropertyType == typeof(int))
{
// PropertyName is an integer property
. . .
}
答案 1 :(得分:0)
目前还不清楚你在问什么...我希望你不要发现Id
和IdChild
以及ChildId
{ {1}}只是因为它们包含单词int
...
为了更加理智"你给我查询和财产的名称,我给你Id
的财产":
Type
使用它像:
public static class EnumerableEx
{
public static Type TypeOf<TSource>(this IQueryable<TSource> source, string propertyName)
{
PropertyInfo property = typeof(TSource).GetProperty(propertyName);
return property != null ? property.PropertyType : null;
}
public static Type TypeOf<TSource, TType>(this IQueryable<TSource> source, Func<TSource, TType> property)
{
return typeof(TType);
}
}
或者如果您使用的是非通用的Type type = query.TypeOf("Id");
,请使用@ shevchenko的解决方案