У меня проблема, когда объект, содержащий свойство списка, содержит 1 элемент, который он не должен (он должен быть пустым).Список содержит один объект, почему?
Класс Station содержит список ребер (края списка). Класс Edge имеет EndStation, который имеет тип Station.
Проблема заключается в том, что после возвращения IQueryable из GetEdgesByStartStation() EndStation на каждом Edge содержит список ребер (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