sql >> データベース >  >> RDS >> Sqlserver

LinqToSqlを使用してデータベースレコードを返しますか?

    基本的なクエリを実行する場合は、できます。 そのように動作します(確かに可能です)-ただし、裸のTable<T>をクエリする場合 、可能性があります すべてが最初にバッファリングされることです。反復中にカウントを照会するか、トレースを実行してみてください。この場合、私は疑わしい 最初にバッファリングします。

    再クローズ:これも依存します;p誰かがforeachを使用している場合 、次にはい:foreach以降 finallyを介してイテレータを明示的に破棄します 。でも!たとえば、誰かがそうするかどうかは保証されません(非常にいたずらで緩い):

    var iter = yourData.GetEnumerator();
    if(iter.MoveNext()) {
        Console.WriteLine(iter.Current.Name); // first record of, say, 20
    }
    // and don't dispose the iterator == bad
    

    次に、イテレータはa:破棄されない、b:それ自体を使い果たす、c:クラッシュしないため、適切にシャットダウンされません(これらの3つの条件のいずれかが 正しく閉じてください)。強調:これは病的なケースです。通常、「終了します、はい」と言ってもかなり安全です。

    バッファリングしないことを保証したい場合、bufferedを設定すると、「dapper」にそれがあることに注意してください。 falseに :

    IEnumerable<Customer> customers = connection.Query<Customer>(
           "select * from Customer", buffered: false);
    

    (パラメータなども処理できます)



    1. MySQLでの日付の解析

    2. mysql COUNT(*)とCOUNT(DISTINCT col)

    3. 負荷がかかった状態でロールアップテーブルを更新する最良の方法は何ですか?

    4. 結合と順序のある個別のレコード