Ceci est une question d'exemple plus détaillé que j'ai demandé: Best Practice with classes and the databaseTransfert des tables de base de données aux classes/classes aux tables de base de données
J'utilise C# avec Sql Server et en utilisant Dapper comme mon ORM.
Voici ma classe qui charge la table de composants dans l'application:
class DBComponent
{
public int ID { get; set; }
public string Component { get; set; }
public int Material_ID { get; set; }
public int Color_ID { get; set; }
}
Alors je besoin de mon autre classe qui aura les valeurs réelles:
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
}
}
La raison pour laquelle je fais cela est que je peux utiliser les valeurs pour une application WinForm avec des contrôles (liste déroulante) et d'autres besoins. De plus, la classe "DBComponent" aurait une méthode qui prendrait un objet "Component" et créerait un objet "DBComponent" qui serait renvoyé à la base de données en tant que nouvel enregistrement.
Est-ce la meilleure façon de gérer cette situation? Ou y a-t-il une meilleure méthode? Dans mon autre post quelqu'un a mentionné que dapper peut le faire par lui-même à l'endroit où je n'aurai pas besoin de créer 2 classes, seulement besoin d'une classe. Comment ça va?
Vous pouvez utiliser des opérateurs implicites pour cela. Jetez un coup d'oeil ici: https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/keywords/implicit – Egbert
@Egbert Je peux voir comment utiliser implicite pourrait être utilisé ici, je ne pense pas que je Je vais l'utiliser dans cette situation, mais j'aime le concept, je vais utiliser implicite dans d'autres parties de mon projet, merci! – jediderek