Решаю обучающую задачку на применение LINQ. Создал небольшую локальную БД через код, после чего задача написать пару методов на подсчет и вывод данных по условию. С последним возникли трудности. Цель следующая - есть две таблицы Юниты и Емкости. Нужно вывести все юниты, принадлежащие определенной емкости.
Я меня получается вывести все емкости, принадлежащие юниту, но при попытке вывести наоборот, компилятор ругается на отсутствие ссылки на объект. Если я правильно понимаю, то надо как то заранее определить List... Но как? Вроде он итак уже определен при создании Unit...
Вот так определены таблицы:
public class Unit
{
public int Id { get; set; }
public string UnitName { get; set; }
public ICollection<Tank> Tanks { get; set; }
public Unit()
{
Tanks = new List<Tank>();
}
public Factory Factory { get; set; }
}
public class Tank
{
public int Id { get; set; }
public string TankName { get; set; }
public double Volume { get; set; }
public int Capacity { get; set; }
public Unit Unit { get; set; }
}
// Сам метод:
public static void FindUnit()
{
using(var db=new FactoryContext())
{
var tanks = db.Tanks.Where(tank => tank.TankName == "Резервуар 1");
foreach (Tank tank in tanks)
{
Console.WriteLine(tank.Unit.UnitName);
}
}
}