【发布时间】:2014-05-06 01:48:55
【问题描述】:
我在我的 winforms 项目中使用 subsonic 3.0.3(ActiveRecords)。我正在努力为我的实体使用集合,但到目前为止我一直无法做到这一点。
请允许我说得更清楚。
在阅读许多教程时,我已经看到,Subsonic 将生成两个类。一个是集合类,另一个是实体对象。例如,如果我的数据库中有一个人员表,subsonic 将生成一个 Person Entity 类和一个 PersonCollection 类。一个网站(对不起,我忘了,是哪一个)也提到我需要使用一个名为 SubsonicCommands 的工具来执行这种亚音速操作。我从这个网站下载了 Visual Studio 2008 的相同版本 http://oldtownit.com/media/files/SubSonicToolsSetup.zip
我可以运行该工具并生成类,但项目不会编译,因为它正在寻找此类 SubSonic.Utilities。祈祷,告诉我在哪里可以找到这门课?我尝试在 ~\Program Files\Subsonic\SubSonicTools\source\ 中寻找这个类,但找不到它。
另外,我检查了代码,仍然没有生成集合类。在我尝试的上述案例中,生成了两个类,Person Entity Class 和 PersonController Class
我的目标:
我想用 subonic 做的是 LLBLGEN 的工作方式。
LLBLGEN 示例
例如,如果有两个表 Items 和 Suppliers 并且它们是一个名为 ItemSuppliers 的中间表,它与两个表(Items 和 Suppliers)具有多对一关系,那么在 LLBLGEN 中,我可以执行类似的操作
Item item = new Item(ItemFields.ItemId==1); item.ItemSuppliers.DeleteMulti()
这将删除与 ItemSuppliers 表中 ItemId 为 1 的项目相关的所有记录。这也可以针对 Suppliers 表完成(当然要进行适当的更改)
我还想知道,如果我返回父对象,我是否可以返回特定项目的所有 ItemSuppliers(来自上面的示例)。
又是一个来自 LLBLGEN 的例子 项目 item = new Item(ItemFields.ItemId ==1); MessageBox.Show(item.ItemSuppliers.Count.ToString());
如果一个项目有 2 个供应商(来自 itemSuppliers 表),上述消息框将显示 2 个
结语:
Subsonic 是一个很棒的工具。我经常使用它,在一些超小型项目中,但我想在稍微复杂一点的项目中使用它,这次有一些表之间的关系。
另外,如果有人可以建议,如果我能做到,我想用亚音速做什么,那就太棒了。
【问题讨论】:
标签: activerecord subsonic