C#中的多对多关系对象

时间:2009-10-16 05:29:31

标签: .net

我正在使用.NET 2.0。我有两个对象,一个是:PhoneService,另一个是ChartOfAccount。这与之间的关系是多对多的。

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
    }
}

现在我的问题是,当你这样做时有可能:

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

由于 ChartAccounts 是一个集合,我如何尝试将Allocate()变为如下: service.ChartAccounts.Allocate()

我能想到的只是将Allocate()方法放在Service类中。有什么想法吗?

由于

2 个答案:

答案 0 :(得分:1)

通常,多对多对象(如数据库中)应该是对象本身。

为什么不使用第三个对象代表多对多链接而不是对象呢?

答案 1 :(得分:1)

虽然这可能不是最干净的方法,但您始终只需创建一个ChartAccounts类,该类仅包含一个chartaccounts列表并将该方法添加到该类。另一种选择是在chatAccount类上创建一个扩展方法来执行分配代码。