我有这个签名的方法: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