Не удается отследить экземпляр типа in. Net core? - PullRequest
0 голосов
/ 14 апреля 2020

Я получаю ошибку ниже для одной из таблиц. таблица не имеет первичного ключа. Как справиться с этим? Я пытаюсь добавить новую строку в таблицу.

Ошибка

Unable to track an instance of type 'CommonDataZipInfo' because it does not have a primary key. 
Only entity types with primary keys may be tracked.'

DataContext.cs

modelBuilder.Entity<CommonDataZipInfo>(entity =>
        {
            entity.HasNoKey();

            entity.ToTable("COMMON_DATA_ZIP_INFO");

            entity.Property(e => e.AddDate).HasColumnType("datetime");

            entity.Property(e => e.ManuscriptNum)
                .HasColumnName("manuscript_num")
                .HasMaxLength(32)
                .IsUnicode(false);

            entity.Property(e => e.ZipfileName)
                .HasMaxLength(32)
                .IsUnicode(false);
        });

Program.cs

 var CommonDataZipInfo = new CommonDataZipInfo()
 {
      ManuscriptNum = ManuscriptNum,
      ZipfileName = Path.GetFileName(fileName),
      AddDate = DateTime.Now
  };
  context.CommonDataZipInfo.Add(CommonDataZipInfo);
  context.SaveChanges();

1 Ответ

1 голос
/ 14 апреля 2020

Для работы объекта EF необходим первичный ключ, и этот ключ может существовать или не существовать в таблице.

Исходя из моего опыта (это обходной путь), я пытаюсь найти уникальный ключ, используя несколько столбцов и определить это в модели. Может быть, вы можете использовать типы ключей без ключа .

...