处理亚音速的关系

时间:2010-08-07 06:18:35

标签: activerecord subsonic

我在winforms项目中使用亚音速3.0.3(ActiveRecords)。我正在努力为我的实体使用Collections,但到目前为止我一直无法做到这一点。

请允许我让自己更清楚。

虽然经历过许多教程,但我看到,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示例

例如,如果有两个表,项目和供应商和他们是一个名为ItemSuppliers的中间表,它与表(项目和供应商)有多对一的关系,那么在LLBLGEN,我可以做类似的事情

Item item = new Item(ItemFields.ItemId == 1); item.ItemSuppliers.DeleteMulti()

将删除与ItemSuppliers表中ItemId为1的项相关的所有记录。这也可以针对供应商表格进行(当然正在进行适当的更改)

另外我想知道,如果我返回父对象,我可以返回特定项目的所有ItemSuppliers(来自上面的示例)。

再次来自LLBLGEN的一个例子 Item item = new Item(ItemFields.ItemId == 1); MessageBox.Show(item.ItemSuppliers.Count.ToString());

如果一个物品有2个供应商(来自itemSuppliers表),上面的消息框会显示2

结语:

Subsonic是一款非常棒的工具。我经常在一些超小型项目中使用它,但我想用一个更复杂的项目来使用它,这次它在表之间有一些关系。

另外,如果有人可以建议,如果我能做到,我想用亚音速做什么,这将是非常棒和甜。

1 个答案:

答案 0 :(得分:1)

您首先要说您使用的是3.0.2版,但似乎您正在使用Subsonic 2.2和3 - 您应该使用其中一种。

版本2中的utlities类。 可从以下网址下载:http://github.com/subsonic/SubSonic-2.0/blob/master/SubSonic/Utility.cs