2017-02-17 8 views
-1

Ich habe ein Problem mit meiner mobilen Anwendung (ich benutze Mvvm) - Namenskonvention zwischen Modellen, die ich für die Datenbank verwende (also Klassen mit Eigenschaften) und einen Teil der abstrakten Modelle, die ich für meine benutze Modelle ansehen.Namenskonvention von Datenbankmodellen und Ansichtsmodellen

Beispiel

speichere ich in der Datenbank 'Cars', so habe ich Klasse namens 'Cars' mit Eigenschaften wie - Guid, Name, Farbe. Aus meiner Sicht modelliere ich auf dieser Liste jene Autos, deshalb werde ich Sammlung von Autos brauchen, die Eigenschaften wie Name, IsSelected haben.

Natürlich möchte ich nicht eine Klasse in meinem Projekt 'Cars' mit allen Eigenschaften haben, also frage ich mich, ob es bessere Option/Namenskonvention als Speichern von 'Autos' und 'CarsCollectionItem' in einem Ordner ' Modelle?

Antwort

1

Ich würde denken, der es in Bezug auf Zweck:

  • Sagen Sie den Inhalt Ihrer Datenbank die Referenz, so dass Sie nur eine DbSet<Car> Cars haben sollte.

  • Jetzt, wenn Sie MVVM verwenden, existieren die Sammlungen, die Sie verwenden, aus irgendeinem Grund. Der allgemeinste Grund wäre, sie anzuzeigen, so dass Sie Collection<DisplayedCar> DisplayedCars haben könnten.

Dies ist, wenn Sie eine Fassade zu Ihrem DB-Objekt implementieren möchten. Der alternative Ansatz wäre die Verwendung von Db-Objekten in Ihrem Ansichtsmodell.

var carsVm = new CarsViewModel(); 
var carVm = new CarViewModel() {Car = carFromDb}; 
carsVm.Cars.Add(carVm); 
CarsView.DataModel = carsVm; 
CarView.DataModel = carVm; 

und dann:

<Grid DataContext="{Binding MyCarVm}"> 
    <TextBox Text="{Binding Car.Name}"/> 
</Grid> 
+0

Danke dies für den Austausch. – boski

Verwandte Themen