【问题标题】:I'm missing functionalities on SubSonic 3我缺少 SubSonic 3 的功能
【发布时间】:2009-07-20 19:15:59
【问题描述】:

我开始对 SubSonic 3 进行一些测试,但我遗漏了一些东西。

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

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

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

顺便说一句,我正在使用 ActiveRecord...

谢谢各位! 亚历克斯

【问题讨论】:

    标签: subsonic


    【解决方案1】:

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

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

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

    在其上方添加以下代码:

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

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

    2nd:与上面相同,但对于表格列......它们在哪里?

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

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

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

    【讨论】:

      【解决方案2】:

      第一个和第二个:它没有在默认的 tt 文件中实现。

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

      如果您想要 2.x 方式,问题是这不是一个正确的实现 - XColumn 属性曾经是列对象而不是字符串常量,它们是在 Columns 结构下找到的。所以我希望check-in不会被接受,并且有人会正确地对其进行2.x-ify。

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

      【讨论】:

      • 好吧...我以为我错过了什么。表名称结构也一样吗?我想我只会修改模板。第三个问题呢?
      • 我很确定有人已经提交了列名结构。应该在 3.0.0.3 模板中。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-21
      • 2018-09-14
      • 1970-01-01
      • 2018-09-17
      相关资源
      最近更新 更多