VS 2012 (11.0.60315.01 Update 2), C# 5, Entity Framework 5.0.0.0 (Runtime v4.0.30319)Entity Framework 5 - Löschen Child Datensätze
Ich weiß, ähnliche Fragen wurden in der Vergangenheit geschrieben worden, aber Es scheint keine Antwort zu geben. Ich denke, ich verstehe den Fehler, aber ich bin mehr daran interessiert, die "gewünschte" Lösung zu finden. Alles, was ich tun möchte, ist einen Datensatz aus der Child-Tabelle zu löschen. Kann jemand helfen?
Dies ist ein voller und einfache Beispiel. Die Savechanges() wirft die folgende Ausnahme:
„Der Vorgang ist fehlgeschlagen. Die Beziehung konnte nicht geändert werden, da eine oder mehrere der Fremdschlüsseleigenschaften ist nicht auf NULL festlegbare Wenn eine Änderung auf eine Beziehung besteht, Die zugehörige Fremdschlüsseleigenschaft wird auf einen Nullwert gesetzt.Wenn der Fremdschlüssel keine Nullwerte unterstützt, muss eine neue Beziehung definiert werden, der Fremdschlüsseleigenschaft muss ein anderer Nichtnullwert zugewiesen werden oder das nicht verwandte Objekt muss gelöscht werden. "
Der Code sieht wie folgt aus:
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
}
}
}
}
Die Datenbank sieht wie folgt aus:
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)
Es gibt einen Datensatz in der übergeordneten Tabelle (Id = 1), und es gibt 2 Datensätze in der Child-Tabelle (Id 1 und 2). Beide Child-Datensätze haben eine ParentId = 1.
Sie sollten mehr Tags in Ihre Frage aufnehmen, wie 'C#', 'VS2012' Tags etc. Sie werden mehr Ansichten und Antworten auf diese Weise erhalten. – Komengem