В подходе CODE FIRST,
Как сохранить столбцы идентичности как с семенем идентификации (без автоматического увеличения)?
Моя сущность:
public class Product
{
public int Id { get; set; }
...
}
Также, как сделать здесь иностранный ключ? Я хочу добавить внешний ключ для объекта ниже. Каковы свойства, которые я должен добавить в класс продукта выше?
public class ProductType
{
public int id { get; set; }
....
}
Спасибо
По соглашению, настройка по умолчанию
Если тип свойства первичного ключа является числовым или GUID, он будет настроен как столбец идентификатора.
Вы можете изменить это, предоставив атрибут DatabaseGenerated
и установив его как DatabaseGeneratedOption.None
.
Чтобы иметь внешний ключ от Product
to ProductType
вам нужно будет предоставить ниже коллекцию класса ProductType
, он будет автоматически обнаружен по соглашению, EF будет генерировать столбец внешнего ключа ProductType_Id
в таблице Products
.
public ICollection<Product> Products { get; set; }
Однако для навигации по обоим классам вы можете добавить код ниже по классу Product
.
public int ProductTypeId { get; set; }
public ProductType ProductType { get; set; }
Вот полный код классов.
public class Product
{
[DatabaseGenerated(DatabaseGeneratedOption.None)]
public int Id { get; set; }
public int ProductTypeId { get; set; }
public ProductType ProductType { get; set; }
}
public class ProductType
{
[DatabaseGenerated(DatabaseGeneratedOption.None)]
public int Id { get; set; }
public ICollection<Product> Products { get; set; }
}