Я пытаюсь найти лучший способ создать свою базу данных. У меня есть 2 таблицы, Product
и Image
.
Продукт
PId PRIMARY KEY IDENTITY(1, 1)
PName
PPrice
Изображение
PId PRIMARY KEY IDENTITY(1,1)
PImage1
PImage2
FOREIGN KEY (PId) REFERENCES Product(PId)
В настоящее время моя база данных разработана неправильно. Поскольку я предполагаю, что всякий раз, когда добавляется запись в Product
, сразу после добавления в Image
. Это предположение также делает предположение, что сгенерированный первичный ключ для Image
такой же, как сгенерированный первичный ключ для Product
.
Тогда в коде контроллера у меня есть:
_context.Product.Add(Product); // Add the created product record to the database
await _context.SaveChangesAsync();
_context.Image.Add(imageRecord); // Add the created image record to the database.
await _context.SaveChangesAsync();
где соответственно Product
и imageRecord
являются объектами следующих классов моделей:
public class Product
{
public int ProductID { get; set; }
public string ProductName { get; set; }
public string ProductShortDesc { get; set; }
public string ProductLongDesc { get; set; }
public decimal ProductPrice { get; set; }
}
public class Image
{
[ForeignKey("Product")]
[Key]
public int ProductID { get; set; }
public byte[] ProductImage1 { get; set; }
public byte[] ProductImage2 { get; set; }
public byte[] ProductImage3 { get; set; }
}
Это начинает давать сбой, когда я начинаю удалять записи из таблиц и автоматически увеличиваемые значения первичного ключа больше не то же самое.
Как я могу разработать его лучше, чтобы я мог выбрать первичный ключ Product
, что позволит мне использовать его в качестве первичного ключа Image
?