Выдаёт такую ошибку, что делать
'List' does not contain a definition for 'Orders' and no accessible extension method 'Orders' accepting a first argument of type 'List' could be found (are you missing a using directive or an assembly reference?) (CS1061) [Project_Geolab]
Код:
using System;
using System.Linq;
using Project_Geolab;
public class ShowCustomerInformations
{
private readonly string email;
public ShowCustomerInformations(string email)
{
this.email = email;
}
public void Show()
{
using(Technic context = new Technic())
{
//var findedRecords = context.Customers.Where(r => r.Email == this.email).ToList();
var findedRecords = context.Customers.Where(o => o.Email == this.email).ToList();
if(findedRecords != null)
{
foreach(var item in findedRecords.Orders)
{
var id = item.Id;
Console.WriteLine($"Id: {item.Id}, ProductName: {item.ProductName}, Quantity: {item.Quantity}, PurchaseDate: {item.PurchaseDate}");
}
}else
{
Console.WriteLine("Error");
}
}
}
}
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
public class Customer
{
public int Id { get; set; }
[Required]
public string Name { get; set; }
[StringLength(45)]
public string Email { get; set; }
public int Age { get; set; }
// Ссылка на заказы
public virtual ICollection<Order> Orders { get; set; }
}
public class Order
{
public int Id { get; set; }
public int CustomerId { get; set; }
public string ProductName { get; set; }
public int Quantity { get; set; }
public DateTime PurchaseDate { get; set; }
// Ссылка на покупателя
public Customer Customer { get; set; }
}
findedRecords
— это список пользователей. Orders
— свойство одного отдельного пользователя. Ошибка говорит о том, что у класса «список» нету свойства «Заказы», что логично.
Если нужно обрабатывать заказы по всем пользователям, которые найдутся, то понадобится еще цикл:
//проверку на null можно убрать
//список всегда вернется, если никто не найден, то список будет пустой
//и ничего не произойдет
foreach(var customer in findedRecords)
{
foreach(var item in customer.Orders)
{
//все остальное
}
}
Если же по e-mail всегда будет находится один пользователь, то Вам нужно получать одного пользователя, а не список:
//вместо findedRecords
var customer = context.Customers.Where(o => o.Email == this.email).SingleOrDefault();
if(customer != null)
{
foreach(var item in customer.Orders)
...
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Разбираюсь в c# в частности с делегатами, возник вопрос зачем нужны делегаты если можно создать экземпляр класса и вызвать метод
Не получается настроить references в MySQL, не понимаю что делаю не правильно