Я пытаюсь назначить класс DbSet
, который наследуется от более общего класса. В приведенном ниже примере показано, что я пытаюсь достичь:Entity Framework Generic Inheritance
DbSet<Animal> dbSet;
switch (selectedAnimal)
{
case "Dog":
dbSet = _Context.Dog; // DbSet<Dog>
break;
case "Cat":
dbSet = _Context.Cat; // DbSet<Cat>
break;
case "Pig":
dbSet = _Context.Pig; // DbSet<Pig>
break;
}
Dog
, Cat
, Pig
класс унаследованный класс Animal
следующим образом:
public class Dog : Animal { }
Но я получаю compile- временная ошибка Cannot implicitly convert type DbSet<Dog> to DbSet<Animal>
Как реализовать проект без получения ошибки?
P.S. Вышеприведенный код просто иллюстрирует то, что я пытаюсь достичь, поэтому простите меня, если это не имеет смысла.
Возможный дубликат http://stackoverflow.com/questions/19082671/why-isnt-dbset-covariant – ChrisV
Интересный .. Ковариация - это что-то новое для меня, прочитает об этом. – Dan