所以我試圖動態加載我的域名數據服務,其中的表名是字符串...這是我到目前爲止:通常我會加載像這樣:DomainDataService(ViewModel)通過字符串名稱加載實體
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類沒有運氣,它沒有找到方法的「設置」或「條目」。
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(用戶...問題,等等。)
現在回想起來,其實這是正確加載的實體。但我需要一種方式來動態指定我的「類型」(MySite.Web.Models.User)想法? :( – Kulingar
可以從((TabItem)發件人).Header'?推導出類型(例如:'MySite.Web.Models.User'),還是將它作爲參數傳遞? – GolfWolf