【发布时间】:2014-10-17 05:03:55
【问题描述】:
我有几个产品,如 HotelProduct、FlightProduct ... 从 BaseProduct 类派生。这些产品的表格将在数据库中以TPC方式生成。有一个具有 BaseProduct 的 OrderLine 类。
我的问题是,当我选择带有相关产品的 OrderLine 时,我不知道如何将 BaseProduct 转换为派生产品。例如我有这个查询:
var order = (from odr in _context.Orders
join orderLine in _context.OrderLines on odr.Id equals orderLine.OrderId
join hotel in _context.Products.OfType<HotelProduct>() on orderLine.ProductId equals hotel.Id
where odr.UserId == userId && odr.Id == orderId
orderby odr.OrderDate descending
select odr).SingleOrDefault();
在 OrderLine 中,我有 BaseProduct 属性而不是 HotelProduct 的属性。有没有办法将 BaseProduct 转换为 OrderLine 或任何其他解决方案中的派生类?
【问题讨论】:
-
不是自动创建为派生实例吗?
-
不,即使我使用
OfType,它也只是创建基类。
标签: entity-framework inheritance casting linq-to-entities entity-relationship