VS 2012 (11.0.60315.01 Update 2), C# 5, Entity Framework 5.0.0.0 (Runtime v4.0.30319)Entity Framework 5 - Eliminazione figlio record
so domande simili sono stati pubblicati in passato, ma non sembra essere una risposta. Penso di capire l'errore, ma sono più interessato a trovare la soluzione 'desiderata'. Tutto quello che voglio fare è cancellare un record dalla tabella Figlio. Qualcuno può aiutare?
Questo è un completo e semplice esempio. I SaveChanges() tiri la seguente eccezione:
"Operazione non riuscita:. Il rapporto non potrebbe essere cambiato perché uno o più delle proprietà chiave esterna è non annullabile Quando viene apportata una modifica ad un rapporto, la proprietà della chiave esterna relativa è impostata su un valore nullo.Se la chiave esterna non supporta i valori nulli, è necessario definire una nuova relazione, la proprietà chiave esterna deve essere assegnata a un altro valore non nullo oppure l'oggetto non correlato deve essere cancellato. "
Il codice simile a questo:
using System.Linq;
namespace EFDeleteTest
{
class Program
{
static void Main(string[] args)
{
using (EFTestEntities context = new EFTestEntities())
{
var parent = context.Parents.Single(p => p.Id == 1);
var child = parent.Children.Single(c => c.Id == 1);
parent.Children.Remove(child);
context.SaveChanges(); // Throws the above Exception
}
}
}
}
Database si presenta come segue:
Parent
Id (PK, int, not null) IDENTITY
Name (nvarchar(50), null)
Child
Id (PK, int, not null) IDENTITY
ParentId (FK, int, not null) -- Foreign Key to the Parent Table (Id column))
Name (nvarchar(50), null)
C'è un record nella tabella padre (Id = 1) e ci sono 2 record nella Tabella figlio (Id 1 e 2). Entrambi i record figlio hanno un ParentId = 1.
Dovresti includere più tag nella tua domanda, come 'C#', tag 'VS2012' ecc. Otterrai più visualizzazioni e risposte in questo modo. – Komengem