我有一个从存储过程返回的结果集,我需要从这些结果中填充对象的字段。问题是我的对象声明了另一个对象,其中包含需要从结果中填充的字段。
我有一个Vehicle对象并在我的Vehicle对象中声明我有一个Truck对象。我无法使用点表示法访问Truck对象的字段。简化的代码和类。
return dc.GetVehicleList(localDateTimeOffset).Select(p => new Vehicle
{
VehicleNumber = p.VehicleNumber
Truck.TruckNumber = p.TruckNumber /* This does not work */
}).Cast<IVehicle>().ToList();
public class Vehicle
{
public int VehicleNumber;
public Truck Truck;
}
public class Truck
{
public TruckNumber;
}
使用LINQ / Lambda如何获取对Vehicle对象中声明的Truck对象的成员的访问权限,以便我可以从结果集中设置这些值?
答案 0 :(得分:2)
您需要创建内部对象以及外部对象:
return dc.GetVehicleList(localDateTimeOffset).Select(p => new Vehicle
{
VehicleNumber = p.VehicleNumber
Truck = new Truck
{
TruckNumber = p.TruckNumber
}
}).Cast<IVehicle>().ToList();
答案 1 :(得分:0)
您还可以在Vehicle类的构造函数中创建truck对象并保留您的查询。
public class Vehicle
{
public Vehicle()
{
Truck = new Truck();
}
public int VehicleNumber;
public Truck Truck;
}