KnowledgeHub
Questions
Tags
Users
Search
Alex Rivera
|
Logout
Edit Question
Title
Body
I have the following scenario: I have three classes, let's call them A , B and C . All they have in common is that they inherit from the same interface, ISomeInterface and that they are classes that are mapped to entities using Entity Framework. I have a method that received a List of objects that implements this interface, but the objects themselves will be instances of A , B or C . The method shell looks like this public void MyMethod(List<ISomeInterface> entityList) { foreach(var entity in entityList) { ProcessEntity(entity); } } Now, the problem is with the ProcessEntity method. This is a generic method, that needs to retrieve the table of matching elements from the database according to the type or entity, so it looks like this: public void ProcessEntity<T>(T entity) { using( var repository = new DbRepository()) { var set = repository.Set<T>(); ... } } The problem is that the line var set = repository.Set<T>(); fails because T is ISomeInterface in this case, and not the actual type( A , B or C ), so it gives an exception that is can't relate to the type given, which is understandable. So my question is: How can i call ProcessEntity with the actual type of the object inside the list, and not the interfacetype that they implements.
Tags (comma-separated)
Save Edits
Cancel