我有一个类型实体的 IList。
我有一个字符串表示从实体派生的类的类型。
我需要使用字符串将我的 IList 转换为从 Entity 派生的 Type 的 IQueryable。
遗憾的是,实体和派生类的程序集不是执行程序集。
我有一个类型实体的 IList。
我有一个字符串表示从实体派生的类的类型。
我需要使用字符串将我的 IList 转换为从 Entity 派生的 Type 的 IQueryable。
遗憾的是,实体和派生类的程序集不是执行程序集。
这是动态 linq 和反射的方法
var list = new List<Company>()
{
new Company { Foo = "1", NoEmployees = 1 },
new Company { Foo = "3", NoEmployees = 3 }
};
MethodInfo method = typeof(Queryable).GetMethods().Where(x => x.Name == "AsQueryable" && x.IsGenericMethod).First();
MethodInfo generic = method.MakeGenericMethod(new Type[] { Type.GetType(typeString) });
var queryable = (IQueryable)generic.Invoke(null, new object[] { list });
var result = queryable.Select("new (NoEmployees)").Where("NoEmployees > 2").OfType<object>().ToList();
下次请更明确
请提供更多信息,这是我能想到的唯一可能是您想要的。
var queryable = new List<dynamic>();
foreach(var entity in IList<Entity>)
{
dynamic companyProfile = Convert.ChangeType(entity, Type.GetType(typeString));
if (companyProfile.CompanyProfileId == "something")
queryable.Add(companyProfile);
// Do Stuff
}
// Do Stuff