0
如果我有一个Car
,Bus
和UnknownVehicle
从Vehicle
派生,然后基于我的数据库中的“类型”字段,我可以投射到一个不同的类型基于条件?我可以有条件地投射到不同的类型吗?
像这样:
public IQueryable<Vehicle> GetAllVehicles()
{
return from vehicle in dc.Vehicles
select vehicle.Type == "C" ? new Car(vehicle.ID) : vehicle.Type == "B" ? new Bus(vehicle.ID) : new UnknownVehicle(vehicle.ID);
}
感谢您的回复。是的,在内联条件之前,我有这样的事情。但是[switch语句]不会转换为SQL(L2S异常) – 2011-03-22 08:01:48
好吧,只要你使用Linq2Sql作为ORM,我认为你不能直接管理你想要的东西。 L2S需要实体到表的映射。 – Kaerber 2011-03-22 08:24:57
您可以将Vehicle作为容器类,将Car/Bus/UnknownVehicle作为包含的类/策略来处理不同类型的车辆之间的不同行为。 – Kaerber 2011-03-22 08:26:18