|
1
4
这不是一个直接的答案,但是… 你的设计是非常(非常)相关的。这使得持久化数据库更容易,但您没有适当的OO模型。也许您应该考虑在数据集中使用数据表并获得关系类的好处。 拍摄:
我怀疑CPP课程被加载了两次,内存中有两个该课程的实例。你的设计结果很糟糕。默认情况下,这两个实例将不相等,这就是为什么
重新评论:OO中的MXM关系如下:
这将需要更多的工作来写入数据库,但它解决了许多其他问题。 |
|
|
2
3
你想做什么?您的示例似乎希望构建一个在C中实现的关系数据库表。 如果你想有一个面向对象的表现,那么就把整个课程老师班都取消。这与OO完全无关。 |
|
|
3
1
看来你已经解决了这个问题,但是考虑一下下面的代码
|
|
|
4
1
Henk是正确的;你的设计是非常非常关系的。不过,对于这种情况,您最好关注对象中的行为,并使用对象关系映射(ORM)工具在对象和数据库之间进行转换。 ADO.NET的DataTable和DataSet并没有真正提供对象关系映射功能;因为它们与基础数据库架构紧密耦合,所以当您真正想从教师和课程的角度进行思考时,它们会强制您从列、表和关系的角度进行思考。 我真的建议你看看 Castle ActiveRecord 对于这个场景。它使用与示例相同的方法-static teacher.get()检索实例,myteacher.save()保存更改-但是您的示例缺少很多必要的复杂性,并且使用ORM框架将允许您忽略这种复杂性并专注于您自己的项目需求。 这是 an example of many-many associations 从Castle ActiveRecord文档中,您可能会发现有帮助。 |
|
|
5
0
在老师的课堂上进行添加和删除怎么样?
|
|
|
A B · C#Excel自动调整列避免长文本时出错 7 月前 |
|
|
Megrez7 · C#ToArray转换合并为一行,导致数组元素更改 7 月前 |
|
Aycon · 在工厂方法中释放部分创建的对象的正确方法是什么? 7 月前 |
|
|
Sei · Avalonia/WPF将路由器传递到控制模板 8 月前 |