我有這個簽名的方法:ObjectContext的EntityFramework EntityType?
public void GenerateLog<TEntity>(TEntity entity) where TEntity : EntityObject
我如何遍歷我ObjectContext的,在我的ObjectContext調用此爲每個實體?
我知道我能做到這一點:
foreach (ObjectStateEntry entry in
context.ObjectStateManager.GetObjectStateEntries(
EntityState.Added | EntityState.Modified))
{
string entityName = entry.Entity.GetType().Name;
}
但我不知道如何從名稱的字符串表示去GenerateLog<MYSTRING>
,而不是GenerateLog<TEntity>
。
有沒有辦法來調用一個泛型方法用一個字符串,你必須提供一個只需要對象(或其他公共基類)的重載。 GenerateLog在內部做了什麼?換句話說,爲什麼一開始就是通用的?你在這個方法的主體中做了什麼,它有一個通用的方法是有價值的?也許有了這些知識,人們可以提供一個替代解決方案或建議如何實現你想要的。 – 2011-05-27 23:54:59
這是一種記錄數據庫記錄更改的方法。 TEntity過濾整個事情。整個事情都在奇妙地發揮着作用,除了我在這一點上掛了。如果我通過提供像GenerateLog這樣的實際對象類型來調用它,它可以完美地工作。但是我需要不這樣做,因爲有些東西我不得不稱之爲。 –
2011-05-27 23:58:07