Asp.Net MVC erstellen / aktualisieren / löschen mit Composite-Taste
-
24-09-2019 - |
Frage
Ich bin mir nicht sicher, wie Composite-Schlüssel zu verwenden.
Meine Tabelle Kategorien hat CategoryId (PK, FK), LanguageId (PK, FK), Kategorie
CategoryId | LanguageId | CategoryName
1 | 1 | Car
1 | 2 | Auto
1 | 3 | Automobile
etc.
Ich folge dieses Design
Die Standard-Aktion sieht aus wie
//
// GET: /Category/Edit/5
public ActionResult Edit(int id)
{
return View();
}
und Action
<%= Html.ActionLink("Edit", "Edit", new { id= item.CategoryId }) %>
Sollte ich so etwas wie
<%= Html.ActionLink("Edit", "Edit", new { id= (item.CategoryId + "-" + item.LanguageId) }) %>
so die URL
/Category/Edit/5-5
und
//
// GET: /Category/Edit/5-5
public ActionResult Edit(string id)
{
// parse id
return View();
}
oder die Route wie etwas ändern
/Category/Edit/5/5
Oder gibt es etwas besseren Weg?
Lösung
Ich habe es bekommen.Ich fügte "als Col1" hinzu, um beide Abfragen derselben Col für die Ergebnisse jedes Tisches zu machen. Für die Zusammenführung ersetzte MissingSchemaection.Add in MissingSchemaaction.Indore.
Das hat für mich ausgearbeitet.
Andere Tipps
Ja, es gibt einen besseren Weg. Sie können auch bestimmen die Benutzer Sprache und Kultur aus der Anfrage zu bestimmen. Und ich würde nicht mit einem zufälligen Schema wie 1 = Englisch 2 = Deutsch kommen. Verwenden Sie die Standardkultur Identifikatoren.