В идеале, что вы хотите это много-ко-многим между вашими Shop
и Product
лиц:
public class Shop
{
public int ShopId {get; set;}
public virtual ICollection<ShopProduct> ShopProducts {get; set;}
}
public class Product
{
public int ProductId {get; set;}
public string Name {get; set;}
public virtual ICollection<ShopProduct> ShopProducts {get; set;}
}
public class ShopProduct
{
public int ProductId {get; set;}
public int ShopId {get; set;}
public virtual Product Product {get; set;}
public virtual Shop Shop {get; set;}
public decimal Price {get; set;}
}
На приведенном выше примере, каждый Shop
может иметь много Product
с и каждый Product
может существовать во многих Shop
s. На стыке каждой комбинации Shop
- Product
вы указываете цену. Позвольте мне показать пример:
ID | Shop Name
--------------
1 Shop 1
2 Shop 2
3 Shop 3
ID | Product Name
-----------------
1 Fork
Итак, теперь мы можем сделать это (ваш пример сверху):
ProductId | ShopId | Price
----------------------------------------------------
1 1 10.00 <- fork for Shop 1 @ $10
1 2 20.00 <- fork for Shop 2 @ $20
1 3 30.00 <- fork for Shop 3 @ $30
Теперь вы можете добавить множество магазинов и продуктов, как вы хотите, и связать их в таблица «многие-ко-многим». Таблица, подобная этой, называется таблицей переходов в языке базы данных.
@Sachu не используйте 'инлайн code', чтобы выделить случайные условия. – CodeCaster