我有一個問題,其中包含一個列表屬性的對象擁有1項,它不應該(它應該是空的)。列表中包含一個對象爲什麼?
該站類包含邊緣(名單邊緣)的列表。 Edge類具有EndStation類型的Station。
問題是,在從GetEdgesByStartStation()返回IQueryable後,每個Edge上的EndStation都包含一個非空(它應該)空邊的列表(List Edges)。 列表中的項目是它自己的站(edge.EndStation)。我試着意見,說明它在下面的代碼
public IQueryable<Edge> GetEdgesByStartStation(Station station)
{
var edges = db.Edges.Where(x => x.StartStationId.Equals(station.ID));
foreach (var edge in edges)
{
edge.EndStation = db.Stations.FirstOrDefault(x => x.ID.Equals(edge.EndStationId));
//Here the edge.EndStation.Edges would contain 1 item, edge.EndStation
//eg. edge.EndStation = "Miami", edge.EndStation.Edges = { "Miami" }
}
return edges;
}
我想這個代碼做的,是讓所有的邊緣爲站傳遞給方法。對於每個邊緣,連接一個EndStation和一個空的邊緣列表。
站類:
public partial class Station
{
public Station()
{
this.Reservations = new List<Reservation>();
this.StationMaintenances = new List<StationMaintenance>();
}
[DataMember]
//[JsonConverter(typeof(Int32))]
public int ID { get; set; }
[DataMember]
//[JsonConverter(typeof(Int32))]
public int TypeId { get; set; }
[DataMember]
public string Title { get; set; }
[DataMember]
public string Description { get; set; }
[DataMember]
public decimal StationLat { get; set; }
[DataMember]
public decimal StationLong { get; set; }
[DataMember]
public bool IsOperational { get; set; }
[DataMember]
public bool IsActive { get; set; }
[DataMember]
public DateTime CreatedDate { get; set; }
[DataMember]
public virtual BatteryStorage BatteryStorages { get; set; }
[DataMember]
public virtual List<Reservation> Reservations { get; set; }
[DataMember]
public virtual List<StationMaintenance> StationMaintenances { get; set; }
[DataMember]
public virtual List<Edge> Edges { get; set; }
[DataMember]
public virtual StationType StationType { get; set; }
}
邊緣種類:
public partial class Edge
{
[DataMember]
public int ID { get; set; }
[DataMember]
public int StartStationId { get; set; }
[DataMember]
public int EndStationId { get; set; }
[DataMember]
public virtual Station EndStation { get; set; }
[DataMember]
public decimal Distance { get; set; }
[DataMember]
public decimal Time { get; set; }
[DataMember]
public bool IsActive { get; set; }
}
怎麼能這樣呢?
您需要提供更多信息。首先,如果在問題中添加完全可編譯和可執行的代碼示例,那將是最好的。如果你不能這樣做(例如,你可能需要一個數據庫),至少要提供問題中的所有代碼*。我的意思是你應該從github項目中添加類,並將它們修剪成與這個問題相關的東西。接下來,你說「它不應該」。問題是,它應該包含什麼?零?許多? –
爲什麼它不應該保存一個項目?這個錯誤,如果有的話,可能與發佈的代碼無關。 – JeffRSon
或者它可能在數據庫關係中。 – JeffRSon