2017-07-10 6 views
0

En examinant le code d'un projet de site Web .net, la plupart des classes ont été créées avec des propriétés étendues. Ceux-ci ont ensuite été utilisés comme sources de données pour les listes de lecture et les répéteurs qui n'utilisent pas toutes les propriétés extraites de SQL.Utilisation des mêmes classes pour les articles et les listes

Par exemple, la liaison d'une liste (de contact) à un répéteur mais le répéteur a besoin que id, surnom, nom complet, code postal

classe détaillée pour l'article:

Public Class Contact 
Private _id as integer = 0 
Private _nickname As String = "" 
Private _email As String = "" 
Private _website As String = "" 
Private _titleID As Integer = 1 
Private _fullname As String = "" 
Private _address1 as string = "" 

et 20 plusieurs variables.

Edit: Suivi par 27 propriétés, constructeur et méthodes partagées pour compléter la classe (ref plutonix)

Pouvez-vous récupérer sélectivement certaines des propriétés de SQL lors de la liaison à un objet. Ou avez-vous besoin de classes séparées pour les listes qui utilisent moins de propriétés? Linq n'est pas utilisé.

+0

Ceci est très large et demande presque un tutoriel. Mais a) aucune de ces choses n'est une propriété et b) aucune d'entre elles ne sera visible en dehors de la classe puisqu'elles sont privées. S'il vous plaît lire [ask] et prendre le [tour] – Plutonix

Répondre

0

Bien sûr, vous ne pouvez définir que les propriétés souhaitées, mais gardez à l'esprit que les autres propriétés auront les valeurs par défaut de leur type.

+0

merci - donc si le champ SQL 'website' est nvarchar (75) mais par défaut chaîne de longueur nulle dans la classe, cela signifie-t-il que la liste aura une propriété de longueur zéro pour 'website' – paul

+0

Cela signifie que la propriété String aura la valeur par défaut de String - Nothing (null en C#). Mais si vous avez une propriété avec par exemple DateTime, il aura la valeur par défaut de DateTime.MinValue (1.1.0001) qui prend de la place en mémoire et qui doit être prise en compte quand une grande quantité d'éléments est utilisée (100 000+) –

+0

Il est également important de savoir comment les données sont mappées de la classe DB vers la classe .NET, c'est-à-dire quel mappeur O/R vous utilisez. –