2009-10-16 4 views
0

J'utilise .NET 2.0. J'ai 2 objets un est: PhoneService et l'autre est ChartOfAccount. La relation entre cela est beaucoup à beaucoup.Beaucoup à plusieurs objets relationnels en C#

public class PhoneService 
{ 
    private List<ChartAccount> chartAccounts 
    private ChartAccount chartAccount 

    public Int64 ID 
    { 
    get { return id; } 
    set { id = value; } 
    } 

    public bool Add() 
    { ... } 

    public bool Update() 
    { ... } 
} 

public class ChartAccount 
{ 
    public Int64 ID 
    { 
    get { return id; } 
    set { id = value; } 
    } 

    public bool Add() 
    { ... } 

    public bool Update() 
    { ... } 

    public bool Allocate() 
    { 
     // this will save data for the bridge table only 
    } 
} 

Maintenant, ma question, est-il possible quand vous faites ceci:

PhoneService service = new PhoneService(); 
service.ChartAccounts[0].ID = 5 
service.ChartAccounts[1].ID = 10 

En raison de ChartAccounts est une collection, comment puis-je attemp de mettre Allouer() pour devenir comme: services .ChartAccounts.Allocate()

Tout ce que je peux penser est de mettre la méthode Allocate() dans la classe Service à la place. Des idées?

Merci

Répondre

1

Bien que cela ne soit pas le moyen le plus propre, vous pouvez toujours créer une classe ChartAccounts qui contient uniquement une liste de diagrammes de graphiques et ajouter la méthode à cette classe. L'autre option consiste à créer une méthode d'extension sur la classe chatAccount pour exécuter le code d'allocation.

1

En général, beaucoup à de nombreux objets, comme dans les bases de données, devraient être des objets par eux-mêmes. Pourquoi ne pas utiliser plutôt un troisième objet pour représenter les liens plusieurs-à-plusieurs plutôt que dans les objets?

+0

Je préfère en faire l'un ou l'autre selon le contexte. – dcpartners

Questions connexes