Tôi đang thực hiện một Remove()
sử dụng Entity Framework. Khi tôi cố gắng chạy SaveChanges()
, tôi được thông báo rằng tôi không thể chèn NULL vào một cột không cho phép nó. Đây là xa lạ với tôi, vì tôi không làm bất kỳ INSERT
, và tôi đã kiểm tra mỗi trong số 30 mục hiện có để thấy rằng nó không cần phải cố gắng để lưu bảng với null trong cột đó.không thể chèn NULL vào cột vào Remove
Đây là mã trong câu hỏi:
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();
//...
}
bạn có thể cung cấp ngoại trừ thực tế và các lớp POCO tham gia? Lỗi xảy ra trên thực thể đang bị xóa khỏi hoặc một thực thể liên quan? – Kritner
Có một chút rắc rối khi bạn đang truy vấn 'user.ItemXfefs' và sau đó xóa kết quả khỏi' user.Items'. Bạn có nên xóa các mục khỏi cùng một bộ sưu tập mà bạn đang truy vấn chúng không? Hoặc ít nhất là xác minh rằng 'user.Items' chứa mục bạn đang xóa? –
@RufusL Đó là một sai lầm khi đơn giản hóa mã của tôi cho câu hỏi này - đã sửa nó. – muttley91