Dies ist ein detaillierteres Beispiel Frage, die ich gefragt habe: Best Practice with classes and the databaseÜbertragen von Datenbanktabellen für die Klassen/Klassen zu Datenbanktabellen
Ich verwende C# mit SQL Server und mit Dapper als meine ORM.
Hier ist meine Klasse, die die Komponententabelle in die Anwendung geladen wird:
class DBComponent
{
public int ID { get; set; }
public string Component { get; set; }
public int Material_ID { get; set; }
public int Color_ID { get; set; }
}
Dann habe ich meine anderen Klasse müssen, dass die tatsächlichen Werte haben:
class Component
{
public int ID { get; set; }
public string Component { get; set; }
public string Material { get; set; }
public string Color { get; set; }
public Component(DBComponent C)
{
ID = C.ID;
Component = C.Component;
Material = //queries the Material Table passing in C.Material_ID and returning the Material Value
Color = //queries the Color Table passing in C.Color_ID and returning the Color Value
}
}
Der Grund, warum ich das tue, ist, damit ich die Werte für eine WinForm-Anwendung mit Steuerelementen (Combobox) verwenden kann und andere Bedürfnisse. Außerdem hätte die Klasse "DBComponent" eine Methode, die ein "Component" -Objekt annimmt und ein "DBComponent" -Objekt erstellt, das als neuer Datensatz an die Datenbank gesendet wird.
Ist dies der beste Weg, um mit dieser Situation umzugehen? Oder gibt es eine bessere Methode? In meinem anderen Post erwähnte jemand, dass Dapper dies selbst tun kann, wo ich nicht 2 Klassen erstellen muss, sondern nur 1 Klasse. Wie ist das so?
Sie können implizite Operatoren dazu verwenden. Schauen Sie hier: https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/keywords/implicit – Egbert
@Egbert Ich kann sehen, wie implizit hier verwendet werden könnte, glaube ich nicht Ich werde es in dieser Situation benutzen, aber ich liebe das Konzept, ich werde es in anderen Teilen meines Projekts verwenden, danke! – jediderek