Добрый день, ребята,
У меня есть довольно специфическая модель данных, которую я пытаюсь создать в классах POCO, и я испробовал так много разных подходов и посетил так много веб-сайтов, но ни один из них не соответствует моему конкретному примеру.
Так что я собираюсь выбросить это и надеяться, что кто-то может мне помочь.
У меня есть продукты, а в продуктах есть ингредиенты. Однако в нашем бизнесе эти продукты могут поставляться разными поставщиками, каждый из которых имеет несколько различный набор ингредиентов.
Итак, у меня есть базовые классы:
public class Product
{
public int ProductID { get; set; }
public string ProductNumber { get; set; }
public string Description { get; set; }
public virtual ICollection<Supplier> Suppliers { get; set; }
}
public class Vendor
{
public int VendorID { get; set; }
public string Name { get; set; }
public virtual ICollection<Supplier> Suppliers { get; set; }
}
public class Ingredient
{
public int IngredientID { get; set; }
public string Name { get; set; }
}
public class Supplier
{
public int SupplierID { get; set; }
public virtual ICollection<Product> Products { get; set; }
public virtual ICollection<Vendor> Vendors { get; set; }
}
Итак, как вы можете видеть, я дошел до того, что понял, что моей модели нужна сущность объединения, потому что мои ингредиенты поступают от определенного поставщика для продукта, мне нужна эта единица объединения, называемая поставщиком (я думаю).
Это то место, где я застреваю ... Мой продукт может поставляться одним или несколькими поставщиками. Каждый поставщик для каждого продукта будет иметь список ингредиентов для этого продукта
Я даже не могу понять, нужна мне сущность соединения или нет.
Что было бы замечательно, если бы я мог перемещаться по структуре данных следующим образом (или что-то подобное):
articles[1].Vendors[3].Ingredients;
Еще раз, я не знаю достаточно о Entity Framework, чтобы знать, возможно ли это.
То, как я это делаю сейчас, кажется ... неправильным. Как правильно делать то, что я хочу делать? Нужна ли мне таблица соединений или я могу каким-то образом перемещаться по ингредиентам для поставщика продукта, возможно, с помощью построителя моделей, чтобы сделать ссылку на продукт-> поставщик-> ингредиент обязательной?
Любая помощь будет принята с благодарностью!
Edit:
Мне также кажется, что я недостаточно понимаю идеи отношений Entity Framework.
Таким образом, у одного продукта может быть несколько поставщиков, что является отношением «один ко многим». Но у Продавца может быть много продуктов. Так это на самом деле много ко многим?
Я определенно могу смоделировать то, что хочу сделать на сервере SQL Express, но я действительно хочу использовать Entity Framework. Мне просто нужно лучше понять мои требования к моделированию.