2015-02-23 70 views
0

我不知道是否有辦法做到這一點,或者如果我甚至應該這樣做。但是我有一個可以在某些實體上調用的方法。但是我想寫這個方法一次適用於所有的實體,因爲我知道它們以某種方式相似。 有沒有辦法在運行時通過引用該實體類型的字符串值來創建實體的實例? 所以我的方法是GetSomething(Entity e) 並且可以在10個不同的實體上調用。 在運行時我有一個字符串「Entity4」。 我想創建該實體的一個實例,並調用其上的GetSomething()方法。的GetSomething() 裏面我想做的事:在運行時創建一個實體框架實體的字符串

using (var db = new TalonEF_test.GISTestProductionEntities()) 
{ 
    List<runtimeEntity> es = db.runtimeEntity.Where(o => o.OB == oid).ToList(); 
} 
+0

你在尋找Activator.CreateInstance嗎?我不確定我是否理解這個問題。 – Casey 2015-02-23 18:16:51

回答

0

「但我想一次寫這種方法適用於所有實體,因爲我知道他們是在以某種方式相似。」

編寫一個定義這種相似性的接口,然後讓你的實體實現它。當您需要引用可能是任何實體的對象時,請使用該接口。如果您需要針對EF運行具體查詢,則可以在實體上調用GetType,並使用DbContext.Set<T>中的那個來獲取DbSet引用以運行查詢。