Also poste ich auf die Controller-Aktion unten und ich möchte "Pfad" zu diesem Auto Objekt Client. Wenn ich dies zu tun versuchen, aber, bekomme ich einen
Innerhalb von Controller-Aktionen, warum kann nicht ein Pfad zu den verknüpften Tabellen eines Objekts gefunden werden? (mehr drinnen)
Null Referenz Ausnahmefehler (Object Verweis auf eine Instanz eines Objekts nicht festgelegt).
Aus irgendeinem Grund ist Client null.
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Create([Bind(Include = "ClientID,Name")] Car myCar)
{
if (ModelState.IsValid)
{
db.myCars.Add(myCar);
db.SaveChanges();
//why is Client null here (Null Exception)?
myCar.Client.UpdateLastModified();
return RedirectToAction("Details", "Cars", new { id = myCar.ClientID });
}
}
Gibt es eine Möglichkeit, dies zu tun? Auch wenn jemand erklären könnte, warum dies geschieht, würde es mir sehr helfen.
Vielen Dank im Voraus.
edit: Ich bin mit Linq-to-SQL, MVC 5, EF 6
'myCar' wird aus dem erstellt, was Sie von Ihrem Formular gepostet haben. Überprüfen Sie also die Daten, die vom Formularpost kommen, und sehen Sie, ob es richtige Daten zum Laden der 'Client'-Eigenschaft hat. – Shyju
Warum macht EF/C# das nicht für mich? Es scheint wie zusätzliche Arbeit, Client manuell zu laden, bevor die notwendige Aktion ausgeführt wird (zB UpdateLastModified()) Ich meine, es ist ziemlich offensichtlich, was ich versuche (Laden eines verwandten Client-Objekts) - Ich verstehe nicht warum EF und/oder C# kann das nicht für mich tun. –
Dies ist eine Erstellungsaktion, bei der Sie eine neue Entität aus den Daten von form.rite erstellen. Wenn es für einen EDIT-Bildschirm mit der eindeutigen ID ist, müssen Sie die Datenbank abfragen und die Entität abrufen. Wenn Sie eine Bearbeitung vornehmen, ist es am besten, die Daten aus db zu übernehmen und die Eigenschaften zu aktualisieren, die aktualisiert werden müssen. http://stackoverflow.com/questions/34260334/mvc-6-bind-attribute-disappears/34260397#34260397 – Shyju