Ваша первая проблема заключается в том, что вы обычно запрашиваете по идентификатору
.Where(s => s.Supplier == supplier);
Выше не является идентификатором, это объект supplier
Одним из решений будет включение коллекции свойство навигации для SalesOrders
в Supplier
public class Supplier : ModelBase
{
public string CompanyName { get; set; }
public string ContactPerson { get; set; }
public string Phone { get; set; }
public string Street { get; set; }
public string Zip { get; set; }
public string City { get; set; }
public int Discount { get; set; }
public ICollection<SalesOrder> SalesOrders { get; set; }
}
, которое затем позволяет
var supplier = _context.Suppliers
.Include(x => SalesOrders)
.Single(s => s.Id == id);
SalesOrderViewModel viewModel = new SalesOrderViewModel
{
Supplier = supplier,
SalesOrder = supplier.SalesOrder
};
Обратите внимание, что вышеприведенный viewModel , вероятно, не идеален. Это означает, что supplier
будет естественно содержать все salesorders
в этом воплощении, а SalesOrder = supplier.SalesOrder
будет избыточным.