我不确定是否有办法做到这一点,或者我是否应该这样做。但我有一个方法可以调用我的某些实体。但是我想写一次这个方法来应用于所有实体,因为我知道它们在某种程度上是相似的。
有没有办法在运行时通过引用该实体类型的字符串值来创建实体的实例?
所以我的方法是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 :(得分:0)
“但我想写一次这个方法适用于所有实体,因为我知道它们在某种程度上是相似的。”
编写一个界面来定义这种相似性,然后让你的实体实现它。当您需要引用可能是任何实体的对象时,请使用该界面。如果需要针对EF运行具体查询,可以在实体上调用GetType
并在DbContext.Set<T>
中使用它来获取DbSet引用以运行查询。