1
我一直在这里挠我的头一阵子... 我有一个Consumer类和一个继承Consumer的BillableConsumer类。他们都是消费者集合的一部分。问题是,以下查询:如何检索基类(实体框架)?
Consumer consumer = (from c in _ctx.Consumers where c.ID = id select c).First();
返回一个BillableConsumer实例!就像这个查询一样:
BillableConsumer bconsumer = (from c in _ctx.Consumers.OfType<BillableConsumer>() where c.ID = id select c).First();
如何返回基类的实例? (这些是数据存储中的独立表)。
我猜想这样做是违反了里氏替换原则(请参见http:// EN。 wikipedia.org/wiki/Liskov_substitution_principle) 可能是BillableConsumer不是消费者类型,您应该使ConsumerBase具有公共字段和两个继承者:Consumer和BillableConsumer。 – 2010-03-13 07:03:50