2009-11-09 5 views

Répondre

0

Ce n'est pas possible

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

Non testé comme je ne suis pas en face de ma boîte de dev. J'espère que cela pourra aider.

+1

Le problème avec ceci signifie trouver chaque requête et ajouter une ligne à côté pour faire la journalisation. Ce que j'espérais, c'était un système universel auquel je peux m'abonner comme Linq2SQL. –

+0

Je ne pense pas que Subsonci soutient cela actuellement. Peut-être l'ajouter dans) – LiamB

0

SubSonic 2.2 ActiveRecord propose des événements que vous pouvez remplacer, comme AfterValidate() et BeforeCommit(). Vous pouvez utiliser l'un de ceux-ci pour consigner le Sql, mais vous devrez modifier vos modèles afin que le code se retrouve dans toutes vos classes. Ou simplement frapper SubSonic \ DataProviders \ DataService.cs dans votre source SubSonic locale et voir si cela va fonctionner pour ajouter vos événements de journalisation à toutes les méthodes .Execute *.

Questions connexes