你如何模拟一个简单的组合关系

时间:2009-04-27 22:41:34

标签: c# uml modeling relationship composition

有人可以帮助我了解如何最好地塑造作文​​关系吗?

例如,如果我有一个可以有很多时间表的学生,我会大致创建:

class Student
{
  prop long Pk { get; set; }
  prop string Name { get; set; }
  prop List<Schedule> Schedules { get; set; }
}

class Schedule
{
  prop string Semester { get; set; }
  prop List<Course> Courses{ get; set; }
}

在某个地方我可能有一个Schedule对象,并希望识别它属于哪个学生。我希望能够写Schedule.Student.Name,并收到学生的姓名作为回报。我是否也将Schedule属性添加到Schedule对象中?

我的应用程序已将Student Pk传递给Schedule对象以执行CRUD功能。我将学生PK保存为私有变量,以便在需要时对其进行处理。

随着我的应用程序变得越来越复杂,我发现很难维护我一直在做的事情。你对我有什么建议?我还可以查阅(书籍/链接)以获得更新并更好地处理这些基础知识?

1 个答案:

答案 0 :(得分:2)

“我希望能够编写Schedule.Student.Name,并接收学生的姓名。我是否也将Student属性添加到Schedule对象中?”是。

您所描述的内容(支持查找和对象引用的外键以便轻松导航对象图)听起来像对象关系映射器(ORM)非常匹配。一个好的ORM将使用FK / PK为您自动加载相关的对象/对象(例如,如果Schedule具有StudentPK字段,则映射器将为您处理Student属性的加载/映射)。有许多此类产品:您可以使用内置的.NET框架(如Entity Framework),开源的(如NHibernate)或商业产品(如LightSpeed,{{} 3}},LLBLGenEntitySpaces(披露:我为一家制作商业ORM的公司工作)。谷歌的ORM或对象关系映射器,或检查维基百科,概述我正在描述的事情。