我缺少SubSonic 3的功能

时间:2009-07-17 23:04:40

标签: subsonic

我开始在SubSonic 3上做一些测试,但我错过了一些东西。

1st:Table名称常量在哪里?我们可以使用intelisense请求某个表格相同的地方......

第二名:与上述相同,但是对于表格列......他们在哪里? 当你需要将这些名称作为字符串传递时,这非常有用...你需要重构你的数据库,我们不需要查看所有代码来查找我使用该列的位置!重新生成代码后,编译器会告诉您!

第三:现在如何在某个表上执行一个ExecuteReader,就像我习惯在2.x上通过Query对象一样?我使用了很多这个列表,其中我真的不需要业务对象(BO)开销...当我需要一个BO(用于显示网格行详细信息)时,我从行本身创建它...

我正在使用ActiveRecord btw ...

谢谢你们! 亚历

2 个答案:

答案 0 :(得分:1)

1st:Table名称常量在哪里?我们可以使用intelisense请求某个表格相同的地方......

在Structs.tt中,在第47行找到以下代码行:

<#          foreach(var col in tbl.Columns){#>

在其上方添加以下代码:

public static string TableName { get { return "<#=tbl.Name#>"; } }

现在你将拥有一个返回表名的属性。

第二名:与上述相同,但是对于表格列......他们在哪里?

在生成的Structs.cs文件中,这包含在3.0.0.3版本中

第三:现在如何在某个表上执行一个ExecuteReader,就像我习惯在2.x上通过Query对象一样?我使用了很多这个列表,其中我真的不需要业务对象(BO)开销...当我需要一个BO(用于显示网格行详细信息)时,我从行本身创建它...

如果您正在使用SqlQuery对象,则可以在其上调用ExecuteReader。或者,您可以使用Linq语法生成返回自定义形状的对象,它们将自动映射。

答案 1 :(得分:0)

第1和第2:它没有在默认的tt文件中实现。

一个类似的问题: SubSonic 3 Simple Query Tool

问题是,如果你想要2.x方式 - XColumn属性曾经是列对象而不是字符串常量,那么这不是一个正确的实现,那些是在Columns结构下找到的。所以我希望不会接受办理登机手续,而且有人会正确地办理登机手续。

无论如何,你可以看到自己修复它似乎很容易。