10

Service Stack Ormliteのドキュメントに従ってください。デバッグ モードで SQL クエリを生成する必要があります。しかし、私はそれらのクエリを見ることができません。シンプルなコード

 private static readonly string DataDirLoc =
        Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) +
        "\\TargetIntegration\\Test\\Debug\\";



    private readonly string dbFileName = DataDirLoc +
                                              "Test.db3";

    [Test]
    public void Can_Generate_log() {
        //var writer = new TextWriterTraceListener(System.Console.Out);
        //Debug.Listeners.Add(writer);
        Debug.Write("this is a try");
        var dbFact = new OrmLiteConnectionFactory("Data Source={0};Version=3;".FormatParams(dbFileName), true,
                                                  SqliteOrmLiteDialectProvider.Instance);
          IDbConnection dbConnection = dbFact.OpenDbConnection();
       var dbCommand = dbConnection.CreateCommand();
        dbCommand.CreateTable<Contact>();
    }
4

1 に答える 1

15

SQL 出力を表示するには、OrmLite のデバッグ ビルドが必要です。最後の sql を表示する方法は他にもいくつかあります。

Console.WriteLine(dbCmd.GetLastSql());

接続フィルターを設定して、db 接続をプロファイリングすることもできます。これは次のように行うことができます。

var dbFact = new OrmLiteConnectionFactory(
   "Data Source={0};Version=3;".Fmt(dbFileName), true, 
   SqliteOrmLiteDialectProvider.Instance) {
   ConnectionFilter = x => new ProfiledDbConnection(x, Profiler.Current)
};

これをServiceStackで実行すると、すべての SQL ステートメントのプロファイリングされたタイミング出力が表示されます。これがどのように見えるかの例はここにあります:

https://gist.github.com/1787443

于 2012-07-17T21:41:05.163 に答える