Nehmen wir an, dass wir eine Klasse haben, die wie folgt aussieht:Wie behalte ich eine Liste von Strings mit Entity Framework Core?
public class Entity
{
public IList<string> SomeListOfValues { get; set; }
// Other code
}
Nun nehmen wir dies mit EF-Core-Code zunächst anhalten wollen und dass wir eine RDMBS wie SQL Server verwenden.
Ein möglicher Ansatz ist offensichtlich eine wraper Klasse Wraper
zu schaffen, die die Zeichenfolge hüllt:
public class Wraper
{
public int Id { get; set; }
public string Value { get; set; }
}
Und die Klasse zu Refactoring, so dass es jetzt auf einer Liste von Wraper
Objekten abhängt. In diesem Fall würde EF eine Tabelle für Entity
, eine Tabelle für Wraper
erzeugen und eine "Eins-zu-viele" Relation aufbauen: für jede Entität gibt es eine Reihe von Wrappern.
Obwohl dies funktioniert, mag ich den Ansatz nicht ganz, weil wir ein sehr einfaches Modell wegen Persistenzproblemen ändern. In der Tat, nur an das Domänenmodell und den Code denken, ohne die Persistenz, ist die Wraper
Klasse dort ziemlich sinnlos.
Gibt es eine andere Möglichkeit, eine Entität mit einer Liste von Zeichenfolgen an einem RDBMS mit EF Core Code zu verankern? Zuerst anders als eine Wraper-Klasse zu erstellen? Natürlich muss am Ende dasselbe getan werden: Eine andere Tabelle muss erstellt werden, um die Strings zu halten, und eine "Eins-zu-Viele" -Beziehung muss vorhanden sein. Ich möchte dies nur mit EF Core tun, ohne die Wraper-Klasse im Domänenmodell codieren zu müssen.
Dies ist einer der fehlt von EF aller Zeiten, die von NHibernate immer abgedeckt wurde: Benutzertypen ......... –