Ниже приведен класс POCO, который я создал с помощью кода Entity Framework. Как я могу запросить мою базу данных, чтобы я мог вернуть все бренды определенной категории?Как правильно использовать свойства навигации EF?
Пример: У вас есть список категорий, и вы нажмете на него. Он показывает все марки продуктов, доступных в этой категории.
Я не знаю, правильно ли настроены мои классы для этого.
public class Product
{
[Key,ScaffoldColumn(false)]
public int ProductID { get; set; }
public string ProductName { get; set; }
public int? CategoryID { get; set; }
public virtual Category Category { get; set; }
public int? BrandID { get; set; }
public virtual Brand Brand { get; set; }
}
public class Brand
{
[ScaffoldColumn(false)]
public int BrandID { get; set; }
public string BrandName { get; set; }
}
public class Category
{
[ScaffoldColumn(false)]
public int CategoryID { get; set; }
public string CategoryName { get; set; }
public virtual ICollection<Product> Products { get; set; }
}
Почему бы вам не создать связь между «Брэнд» и «Категория», если вам понадобится такая информация, как все марки для категории. Говоря так, я думаю, вам нужны либо отношения «1: N», либо «M: N» b/w эти две таблицы/сущности? – Leron
Я думал об этом, но я бы не думал, что бренд будет иметь отношение к категории, но более того, к продукту. Продукт будет иметь отношение как к категории, так и к бренду. Наверное, я смотрю, как правильно это сделать. – jackncoke
Я бы предпочел отношение внешнего ключа, даже если вам понадобится только этот запрос. В противном случае вы должны использовать 'JOIN' и/или' UNION' с 'LINQ', который я попытаюсь сбежать. Сценарий внешнего ключа проще, и я считаю, что это лучший способ справиться с этим. – Leron