代码之家  ›  专栏  ›  技术社区  ›  Robert MacLean

获取SQL子音速的日志使用

  •  2
  • Robert MacLean  · 技术社区  · 15 年前

    Linq2SQL有伟大的 Log 属性以查看它正在生成的实际SQL语句。亚音速 二点二 有类似的东西吗?

    3 回复  |  直到 14 年前
        1
  •  1
  •   LiamB    15 年前

    http://www.e-webdevelopers.com/268/view-the-sql-generated-by-subsonic/

    SqlQuery sq = new Select()
                       .From(Item.Schema)
                       .InnerJoin(ItemStatus.IstIDColumn, Item.ItmStatusColumn)
                       .InnerJoin(ItemCategory.ItcItemIDColumn, Item.ItmIDColumn)
                       .WhereExpression("ItmIsEnabled").IsEqualTo(true)
                       .AndExpression("ItmName").Like("%" + findThis + "%")
                       .Or(Item.ItmShortDescriptionColumn).Like("%" + findThis + "%")
                       .Or(Item.ItmItemCodeColumn).Like("%" + findThis + "%")
                       .Or(Item.ItmLongDescriptionColumn).Like("%" + findThis + "%")
                       .Paged(pageIndex, PageSize)
                       .OrderAsc("itmName");
    
              Response.Write(sq.ToString());
    

    没有测试,因为我不在我的开发盒前。希望有帮助。

        2
  •  0
  •   Dave Neeley    15 年前

    亚音速2.2 ActiveRecord有一些可以重写的事件,例如AfterValidate()和BeforeCommit()。您可以使用其中一个来记录SQL,但是您必须修改模板,以便代码最终出现在所有类中。

    或者在本地子音速震源中点击subsonic\dataproviders\dataservice.cs,看看是否可以将日志记录事件添加到所有的.execute*方法中。

        3
  •  0
  •   Robert MacLean    14 年前

    这是不可能的