2009-11-09 2 views

ответ

1

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()); 

Не тестировался, как я не Infront моего Dev коробки. Надеюсь, это поможет.

+1

Проблема заключается в поиске каждого запроса и добавлении строки рядом с ней для ведения журнала. Я надеялся, что это универсальная система, на которую я могу подписаться, подобно тому, как Linq2SQL имеет. –

+0

Я не думаю, что Subsonci поддерживает это в настоящее время. Может быть, добавьте его;) – LiamB

0

SubSonic 2.2 ActiveRecord имеет некоторые события, которые вы можете переопределить, например AfterValidate() и BeforeCommit(). Вы можете использовать один из них для регистрации Sql, но вам придется изменить свои шаблоны, чтобы код оказался во всех ваших классах.

Или просто нажмите SubSonic \ DataProviders \ DataService.cs в своем локальном источнике SubSonic и посмотрите, будет ли он работать, чтобы добавить ваши события ведения журнала ко всем методам .Execute *.

Смежные вопросы