API, позволяющий дублировать первичный ключC#

Место общения программистов C#
Ответить
Anonymous
 API, позволяющий дублировать первичный ключ

Сообщение Anonymous »

Я выбил API Swagger. Я пытался сделать свой основной ключ уникальным, но, похоже, это не работает. Мой DBContext был создан с помощью каркасов, и у меня есть сущность (продукт), какая первичная ключ - это строка. Я изменил его вручную так: < /p>
modelBuilder.Entity(entity =>
{

//entity.HasNoKey();
entity.HasKey(e => e.Reference)
.HasName("PRIMARY");

entity.ToTable("cr_product");

entity.HasIndex(e => e.IdCategory, "category");

entity.HasIndex(e => e.IdCompany, "company");

entity.HasIndex(e => e.Reference, "id_product");

entity.HasIndex(e => e.Reference, "references");

entity.Property(e => e.Active)
.HasColumnType("tinyint(1) unsigned")
.HasColumnName("active")
.HasDefaultValueSql("'1'");

entity.Property(e => e.Description)
.IsRequired()
.HasMaxLength(255)
.HasColumnName("description");

entity.Property(e => e.IdCategory)
.HasColumnType("int(6) unsigned")
.HasColumnName("id_category");

entity.Property(e => e.IdCompany)
.HasColumnType("int(6) unsigned")
.HasColumnName("id_company");

entity.Property(e => e.Image)
.IsRequired()
.HasMaxLength(255)
.HasColumnName("image");

entity.Property(e => e.Name)
.IsRequired()
.HasMaxLength(100)
.HasColumnName("name");

entity.Property(e => e.Price)
.HasColumnType("decimal(15,2)")
.HasColumnName("price");

entity.Property(e => e.Reference)
.IsRequired()
.HasMaxLength(15)
.HasColumnName("reference");

entity.Property(e => e.Stock)
.HasColumnType("int(6) unsigned")
.HasColumnName("stock");

entity.Property(e => e.Warehouse)
.HasColumnType("int(6) unsigned")
.HasColumnName("warehouse");

entity.HasOne(d => d.IdCategoryNavigation)
.WithMany()
.HasForeignKey(d => d.IdCategory)
.OnDelete(DeleteBehavior.ClientSetNull)
.HasConstraintName("cr_product_ibfk_1");

entity.HasOne(d => d.IdCompanyNavigation)
.WithMany()
.HasForeignKey(d => d.IdCompany)
.OnDelete(DeleteBehavior.ClientSetNull)
.HasConstraintName("cr_product_ibfk_2");
});
< /code>
Когда я выполняю запрос на сообщение, не имеет значения, является ли эталонное поле (мой основной ключ) дублируется, поскольку он добавит его в мою базу данных. [Index(nameof(Reference), IsUnique = true)]


Подробнее здесь: https://stackoverflow.com/questions/716 ... rimary-key
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»