Мне нужна помощь в написании запроса, ниже я написал классы с необходимыми свойствами только для этого примера (я не показал таблицы БД, которые генерирует ef)
//this class will create a unique id for each location may be country,
state or city
public class Location
{
public int Id { get; set; }
public string Name { get; set; }
public string Discriminator{get;set;}
public int? ParentLocationId { get; set; }
public Location ParentLocation { get; set; }
public ICollection<Location> ChildLocations { get; set; }
}
Пример данных о местоположении
Id | Name | Discriminator | ParentLocationId
1 | India | Country | null
2 | Karnatka | State | 1
3 | Maharashtra | State | 1
4 | Banglore | City | 2
//this will contain all product categories + products itself
public class Category
{
public int Id { get; set; }
public string Name { get; set; }
public Category ParentCategory { get; set; }
public int? ParentCategoryId { get; set; }
public ICollection<Category> ChildCategories { get; set; }
}
Тип данных выборки
Id | Name | ParentCategoryId
1 | Electronics | Null
2 | Mobiles | 1
3 | Apple | 2
4 | Nokia | 2
5 | I phone-4 | 3
6 | Nokia-Some Model | 4
Я использовал переменную Type = User в следующем классе, но у меня естьЗдесь не указан класс 'User', так как он не содержит ничего. spl
public class Purchase
{
public int Id { get; set; }
public User User { get; set; }
[Required]
public int UserId { get; set; }
public Category Category { get; set; }
[Required]
public int CategoryId { get; set; }
public Location Location { get; set; }
[Required]
public int LocationId { get; set; }
}
Примечание для успешной покупки заказ locationId должен быть cityId и categoryIdдолжно быть наименьшим в иерархии, например, categoryId не может быть мобильным, это должен быть iphone-4 или nokia-some-model
Образец данных заказов на поставку
Id | CategoryId | LocationId | UserId
1 | 5 | 4 | 1
1 | 5 | 4 | 2
1 | 5 | 4 | 3
До сих пор у меня все работало нормально, Ниже мой вопрос
Механизм создания создания Iam, в котором я предоставляю две вещи locationId (это местоположение может быть идентификатором страны,штат или город) и идентификатор продукта (этот продукт может быть любым в иерархии, например,это значение может быть идентификатором электроники или мобильного телефона, Apple или iPhone) и получить список всех покупок, которые удовлетворяют этому
, например: примеры фильтров, которые я могу сделать
- a>найти все мобильные продажи в штате (указать категорию мобильного телефона и locationId определенного штата)
- b> найти все продажи nokia в стране (указать категорию nokia и locationId определенной страны) и т. д..
Я открыт для любых предложений, также вы можете сообщить мне, если есть что-то, что не было должным образом объяснено в этом вопросе.