Entity Framework Core - свойство типа сущности является частью ключа и поэтому не может быть изменено или помечено как измененное. - PullRequest
0 голосов
/ 29 марта 2019

Я пытался создать составной ключ в ядре EF, используя следующую строку:

modelBuilder.Entity<PackageMaster>()
  .HasAlternateKey(a => new { a.InstituteId, a.CourseId, a.PackageCode, a.PackageName });

, где комбинация InstituteId, CourseId, PackageCode, PackageName должна быть уникальной.Это работало нормально, но когда я обновляю запись, скажем, обновление packageCode, то я получаю ошибку ниже,

Свойство PackageCode для типа сущности PackageMaster является частью ключа и поэтому не может бытьизменен или помечен как измененный.Чтобы изменить принципал существующего объекта с идентифицирующим внешним ключом, сначала удалите зависимого и вызовите «SaveChanges», а затем свяжите зависимого с новым принципалом.

Я подумал, что это проблема с методом »HasAlternateKey ", поэтому я обновил его до

modelBuilder.Entity<PackageMaster>()
 .HasIndex(a => new { a.InstituteId, a.CourseId, a.PackageCode, a.PackageName })
 .IsUnique();

, а вот класс сущностей

[Table(Schema.Institute + "." + nameof(PackageMaster))]
public class PackageMaster
{
    [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
    [Key]
    public int PackageId { get; set; }

    [Required]
    [StringLength(5)]
    public string PackageCode { get; set; }

    [Required]
    [StringLength(50)]
    public string PackageName { get; set; }

    [StringLength(500)]
    public string Description { get; set; }

    public int InstituteId { get; set; }

    public int CourseId { get; set; }

    [ForeignKey("CourseId")]
    public CourseMaster CourseMaster { get; set; }        

    [Required]
    public decimal Cost { get; set; }

    [StringLength(3)]
    public string CurrencyCode { get; set; }

    public bool GSTIncluded { get; set; }
}

, но все равно не повезло.Любая помощь будет высоко ценится

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...