2010-10-27 13 views
0

Dans ma demande j'ai une classe de clients PUBLIC ...Comment devrais-je gérer les propriétés publiques?

Public Class Customer 
    Public Name As String 
    Public Surname As String 
End Class 

Puis j'ai décidé d'utiliser LINQ to SQL dans mon application. Après avoir ajouté la classe MyDatabase.dbml, les erreurs sont apparus depuis LINQ crée des propriétés publiques trop

<Column(Storage:="_Name", DbType:="NVarChar(50) NOT NULL", CanBeNull:=false)> _ 
    Public Property Name() As String 
     Get 
      Return Me._Name 
     End Get 

Voici quelques erreurs ..

'Name' is already declared as 'Public Name As String' in this class.

'SurName' is already declared as 'Public SurName As String' in this class.

Ok. Thats logique.

Mais quelle est la meilleure pratique que je devrais utiliser dans le futur? Je ne souhaite pas utiliser les options Nom et Pluralisation mentionnées dans ScottGu's blog ou renommer les propriétés de ma classe Customer.

Y at-il un truc qui me manque?

Répondre

1

Votre code original n'a pas de propriétés. Il y avait des champs publics. Ils sont une mauvaise idée, fondamentalement.

Vous devez simplement supprimer les champs d'origine et utiliser ceux que LINQ to SQL a générés pour vous. Pourquoi voulez-vous deux champs (_Name et Name) stockant le nom du client, par exemple?

+0

Bonjour Jon! En fait, le code original a des propriétés. Ce que j'ai écrit ci-dessus est un exemple. Malheureusement, je ne peux pas supprimer les originaux. (Vous voyez qu'il serait plus facile d'écrire l'application à partir de zéro :) – OrElse

+0

@strakastroukas: Les exemples sont généralement plus utiles s'ils représentent réellement la situation réelle. Maintenant * pourquoi * ne pouvez-vous pas supprimer les propriétés d'origine? Avez-vous réellement besoin des classes existantes pour devenir des entités LINQ to SQL, ou pourriez-vous avoir des classes séparées? –

+0

Fondamentalement je ne voudrais pas les enlever parce que je fais beaucoup de contrôles au sein des propriétés. Je ne veux pas que les classes existantes deviennent des entités LINQ to SQL. Je veux juste apprendre LINQ et créer des fichiers XML à partir de ma base de données. – OrElse