1

タイプエンティティのIListがあります。

Entityから派生したクラスのタイプを表す文字列があります。

文字列を使用して、エンティティから派生したタイプのIQueryableにIListをキャストする必要があります。

残念ながら、Entityクラスと派生クラスのアセンブリは実行中のアセンブリではありません。

4

2 に答える 2

1

これが動的な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();

次回はもっと明確に

于 2013-02-20T21:11:36.083 に答える
0

より多くの情報を提供してください、これは私が考えることができる唯一のことであり、あなたが望むものかもしれません。

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
于 2013-02-20T20:42:30.260 に答える