У меня есть отношение "многие ко многим" между классом 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();