Первый код: невозможно создать отношение «1 ко многим».Создает 0 ... 1 для многих вместо - PullRequest
0 голосов
/ 22 ноября 2018

Заказчик

public class Customer
{
    public Customer()
    {
        Addresses = new List<Address>();
        Reviews = new List<Review>();
        Products = new List<Product>();
    }
    [Key]
    public string Email { get; set; }
    public string FirstName { get; set; }
    public string LastName { get; set; }
    public string Password { get; set; }
    public Address DefaultAddress { get; set; }
    public int DefaultAddressId { get; set; }
    public List<Address> Addresses { get; set; }
    public List<Review> Reviews { get; set; }
    public List<Product> Products { get; set; }
}

Продукт

public class Product
{
    public Product()
    {
        Reviews = new List < Review >();
    }

    public int Id { get; set; }
    public Category Category { get; set; }
    public string Name { get; set; }  
    public string Description { get; set; }
    public string Specification { get; set; }
    public List<Review> Reviews { get; set; }
    public List<Customer> Customers { get; set; }
}

Отзыв

public class Review
{
    public int Id { get; set; }
    public string Text { get; set; }
    public int Stars { get; set; }
    [Required] 
    public int ProductId { get; set; }
    [Required]
    public string CustomerId { get; set; }
}

}

Созданная модель

enter image description here

Я хочу, чтобы отношения между Отзывом и Клиентом составляли 1 ко многим, а не 0..1 ко многим.Каждый отзыв должен принадлежать одному клиенту.Я не понимаю, как правильно соотносятся отношения для обзора - продукта, но не для клиента.

1 Ответ

0 голосов
/ 23 ноября 2018

Я использовал только модели Customer и Review, поскольку вы хотели получить ответ именно тогда.Ниже приведены классы вашей модели.

public class Customer
{
    public Customer()
    {
        Reviews = new HashSet<Review>();
    }

    [Key]
    public string Email { get; set; }
    public string FirstName { get; set; }
    public string LastName { get; set; }
    public string Password { get; set; }

    public ICollection<Review> Reviews { get; set; }

}

public class Review
{
    public int Id { get; set; }
    public string Text { get; set; }
    public int Stars { get; set; }
    [Required]
    public int ProductId { get; set; }
    [Required]
    public string CustomerId { get; set; }

    [ForeignKey("CustomerId")]
    public Customer Customer { get; set; }
}

, чтобы клиенты могли просматривать коллекцию и приводить ее в список, если вы хотите, чтобы в вашем запросе linq использовался метод.коллекция отзывов клиентов.для примера:

var customer = dbContext.Customer.Include("Reviews").where(x => x.Email == "john@gmail.com").FirstOrDefault();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...