Невозможно удалить многие многие отношения с Entity Framework - PullRequest
0 голосов
/ 29 октября 2019

У меня есть отношение "многие ко многим" между классом User и классом Catalog, и я хочу удалить функцию, но у меня возникает ошибка при каждой попытке.

InvalidOperationException: свойство 'CatalogId 'для типа объекта>' UserCatalog 'имеет временное значение при попытке изменить состояние> объекта на' Удалено '. Либо задайте постоянное значение явно, либо убедитесь, что> база данных настроена для генерации значений для этого свойства.

Отношение class:

public class UserCatalog
{
    [Key, Column(Order = 0)]
    public string OriginId { get; set; }
    [Key, Column(Order = 1)]
    public int CatalogId { get; set; }
    public ApplicationUser User { get; set; }
    public Catalog Catalog { get; set; }
}

OnModelCreating method:

builder.Entity<UserCatalog>()
    .HasKey(x => new { x.OriginId, x.CatalogId });

builder.Entity<UserCatalog>()
    .HasOne(x => x.User)
    .WithMany(y => y.UserCatalog)
    .HasForeignKey(y => y.OriginId);

builder.Entity<UserCatalog>()
     .HasOne(x => x.Catalog)
     .WithMany(y => y.UserCatalog)
     .HasForeignKey(y => y.CatalogId);

Сбой на _repository.Remove

IRepository<UserCatalog> _repository

var userCatalogToDelete = _repository.DataSet.Where(c => c.OriginId == _userId);

foreach (UserCatalog catalog in userCatalogToDelete)
{
    _repository.Remove(catalog);
}

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