そこで、テーブル名が文字列であるドメイン データ サービスを動的にロードしようとしています。
theDomainDataService.Load(theDomainDataService.getUsersQuery());
そのため、文字列名によってどのエンティティが読み込まれるかを自動化しようとしています。
String theVariableEntityName = "Users";
Type t = theDomainDataService.GetType();
MethodInfo stuff = t.GetMethod("Get" + theVariableEntityName + "Query");
var theQuery = stuff.Invoke(theDomainDataService, null);
theDomainDataService.Load((EntityQuery<MySite.Web.Models.User>)theQuery);
---------------------------------------------------------^ Problem
これは実際には domainDataService を正しくロードしていますが、必要なのは EntityQuery の型を動的に推測する方法です (ユーザーになることを明示的に宣言する必要はありません)。実際には何でもかまいません。
DomainDataService クラスからこれを試してみましたが、うまくいきませんでした。メソッドの「Set」または「Entry」が見つかりません。
public List<object> void PopulateEntity(string theEntityName)
{
Type theEntity = Type.GetType("MySiteMaintenance.Web.Models." + theEntityName);
using (var db = new DatingEntities())
{
IQueryable query = db.Set(theEntity);
foreach (var item in query)
{
var entry = db.Entry(item);
}
}
}
必要なのは、入力されたエンティティ (エンティティの名前しかない場合) が入力されたクライアント側だけであることを忘れないでください...だから私は言うことができます
DomainServiceClass theClass = new DomainServiceClass();
theClass.Load(theClass.GetEntityNameQuery());
そのため、適切に読み込まれたエンティティを参照できます... theClass.Entity (ユーザー... 質問など)