Wykonuję Remove()
przy użyciu Entity Framework. Kiedy próbuję uruchomić SaveChanges()
, powiedziano mi, że nie mogę wstawić NULL do kolumny, która na to nie pozwala. Jest to dla mnie dziwne, ponieważ nie robię żadnego INSERT
i sprawdziłem każdą z 30 istniejących pozycji, aby stwierdzić, że nie powinno się próbować zapisywać tabeli z wartością null w tej kolumnie.Nie można wstawić wartości NULL do kolumny przy usuwaniu
Oto kod w pytaniu:
var user = db.AspNetUsers.FirstOrDefault(u => u.Id == userId);
if (user != null)
{
var itemsToRemove = user.ItemXrefs.Where(i => !itemIDs.Contains(i.ItemID)).ToList();
foreach (var xref in itemsToRemove)
{
user.ItemXrefs.Remove(xref);
}
db.SaveChanges();
//...
}
Czy możesz podać rzeczywisty wyjątek i klasy POCO? To błąd występujący w jednostce, która jest usuwana z lub podmiotu powiązanego? – Kritner
To trochę mylące, że pytasz 'user.ItemXfefs', a następnie usuwasz wyniki z' user.Items'. Nie powinieneś usuwać przedmiotów z tej samej kolekcji, o którą pytasz? Lub przynajmniej sprawdzanie, czy element 'user.Items' zawiera usuwany element? –
@RufusL To był błąd podczas upraszczania mojego kodu dla tego pytania - naprawiłem to. – muttley91