0

我正在做一个项目。

有一些表 CIRCLE、DIVISION、SUBDIVISION 和 FEEDERS。现在,这些表的层次结构是 CIRCLE 有很多 DIVISIONS,DIVISION 有很多细分,Subdivision 有很多 FEEDERS。所以这些表之间存在一对多的关系。

现在,我必须使用 c# 和 OOP 的概念来构建应用程序。

任何人都可以帮助我如何使用 OOP 概念在 c# 应用程序中实现这个表层次结构吗?

4

1 回答 1

2

我强烈建议使用ORM 框架,例如LINQ to SQL或更高级的Entity Framework

由于这听起来很像家庭作业,无论如何让我们以一种对 OOP 友好的方式来解决它,通过定义一个抽象基类来避免冗余:

public abstract class OneToMany<TMany>
{
    private readonly IList<TMany> children = new List<TMany>();
    public IList<TMany> Children { get { return children; }}  
}

public class Circle : OneToMany<Division>
{   
}

public class Division : OneToMany<Subdivision>
{   
}

public class Subdivision : OneToMany<Feeder>
{   
}

public class Feeder
{    
}

用法

var circle = new Circle();
circle.Children.Add(new Division());
var subdivision = new Subdivision();
subdivision.Children.Add(new Feeder());
subdivision.Children.Add(new Feeder());
circle.Children.First().Children.Add(subdivision);

解释

OneToMany<T>是所有具有一对多关系的类派生自的通用抽象基类。它接受类型参数 ,TMany表示一对多关系的多侧元素的类型。

所以,Circle is a OneToMany<Division>(一个圆圈有多个分区),while Division is a OneToMany<Subdivision>,依此类推。

定义了此类层次结构后,我们现在可以构建表示数据库行的对象树,如“使用”部分所示。我们可以这样想象:

     圆圈
       |
    分配
       |
   细分
   / \
 喂料机
于 2012-09-09T11:22:43.357 回答