【发布时间】:2015-01-28 06:07:53
【问题描述】:
我正在尝试分配从更通用的类继承的类的 DbSet。下面的示例演示了我想要实现的目标:
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 { }
但是我得到一个编译时错误
Cannot implicitly convert type DbSet<Dog> to DbSet<Animal>
如何在不出错的情况下实现我的设计?
附:上面的代码只是为了说明我想要实现的目标,如果没有意义,请原谅我。
【问题讨论】:
-
有趣..协方差对我来说是新事物,将阅读它。
标签: c# entity-framework generics inheritance