問題タブ [linqpad]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - ネストされた linq クエリでの「無効な列名 [ColumnName]」
最後の更新
多くのテストを行った後、SQL 2000 と SQL 2005 で同じデータセット (この場合は Northwind) テーブルに対して同じクエリを実行すると、2 つの異なる結果が得られることに気付きました。SQL 2000 では、問題のエラーが発生します。SQL 2005 では成功します。
そのため、linqpad によって生成されたクエリは sql 2000 では機能しないと結論付けました。これを再現するには、次のコマンドを実行します。
SQL 2000 の Northwind DB で。SQL 変換は次のとおりです。
元の質問
次のクエリがあります。
結果:
これが機能するため、タイムスタンプへの最後のクエリと関係があることがわかりました。
クエリは簡略化されています。目的は、一連の変数でグループ化し、このグループ化がデータベースで最後に発生した時間を表示することです。
これらの結果を生成するためにLinqpad 4を使用しているため、Timestampは文字列を提供しますが、FirstOrDefaultは理想的ではないオブジェクト全体を提供します。
更新
さらにテストしたところ、SQLException の数とタイプが groupby 句で作成されたクラスに関連していることがわかりました。そう、
結果は
c# - Max(x=>x.Time) vs OrderByDescending(x=>x.Time).First().Time
ネストされたlinqクエリで「無効な列名[ColumnName]」に関する関連する質問を提起しました
ここで尋ねられたように、グループの一番上の行を取得しようとしています:
Linq - 各グループのトップ値
ただし、Maxを使用して受け入れられた回答とは異なる方法でアプローチしました。私はこのようにしました:
これにより、エラーが発生しますSqlException: Invalid column name 'ID'
Max 関数を使用すると、次のようになります。
私が欲しかった時間のリストを返します。
私の理解では、それらは異なるが同等の呼び出しです。最初の呼び出しで SQL エラーが発生するのはなぜですか?
更新
最初のクエリ用に生成された SQL クエリは次のようになります。
私はそれを減らすことができましたが、同じエラーを維持しています:
Update2
一部の回答では、これらのクエリは論理的に異なるとされていますが、ノースウィンド テーブルでこのようなことを行うと、同じ結果が得られます。
したがって、クエリが異なる、Max がリストの最大値ではなく Sum を指定している、または先に進む前に IQueriable をリストに変換する必要があるという 3 つの回答のいずれも受け入れることができません。
c# - linqpadがDebug.Writelineに書き込まれたステートメントの出力を表示しないようにするにはどうすればよいですか?
Linqpadは、リスナーをdebug.listenersコレクションに入れてから、トレースの出力を、クエリ自体からの結果と一緒に結果ウィンドウに表示するようです。
linqpadにこれを行わずに、既存のdebug.listenersコレクションをそのままにしておくように指示する方法はありますか?
トレースを別のアプリケーションに書き込むlinqpadから呼び出しているアセンブリがありますが、linqpadはリスナーをクリアして独自のアセンブリを挿入しているようです。理想的には、既存のリスナーをそのままにして、通常のトレースを取得します。ライブラリの。
提案をありがとうTollo
c# - Linq .LinqPad を使用してメソッドの質問を選択する
次のコードでエラーが発生する理由がわかりません。簡単なものが欠けていると確信していますが、理解するのに助けが必要です。
LinqToSql を使用して、LinqPad でこのコードを実行しています。
LinqPad に次のコードがあります。
関連する 3 つのテーブルがあります: Shipments、ShipmentDetails、および ShipmentWeights。3 つのテーブルはすべて、Shipments テーブルの PK である shippingID によってリンクされています。
このコードでは、最後のクエリ ("Weights") が次のエラーで失敗します:「サポートされていない例外: ローカル コレクションを含むクエリはサポートされていません。」LinqToSql の何かが .Contains の使用をサポートしていないことがわかりましたが、「詳細」というクエリがどのように機能しているかわかりません。私には同じ種類のクエリのようです。誰かが私のためにギャップを埋めることができますか?
LinqPad に慣れていない方のために説明すると、.Dump メソッドは、フォーマットされた形式で内容を出力する IQueryable の単なる拡張メソッドです。
wpf - LinqPad で WPF の例を作成する
LinqPad で WPF オブジェクトを正常にインスタンス化する方法はありますか? これが私の例です(正しいアセンブリがクエリに追加されるなど):
ただし、これは恐ろしい死に方をします。
これを機能させる方法についての手がかりはありますか?
c# - Visual Studio の LINQPad
これらの行により、LINQPad から VS にコードをコピーし、.Dump() を使用してすべての行をコメントアウトせずに実行できますが、それだけでは十分ではありません... http://code.google.com/p/linqpadvisualizer/ - あまり快適ではありません: (
VS で LINQPad を検索して得た最良の結果は、Pat Kujawa による以下のコードを含むこのサイトです。
しかし、エラー 1 'LINQPad' という名前は現在のコンテキストには存在しません
ネット上にLINQPad.dllが見つかりませんでした
c# - linqpad で静的プロパティをダンプする
上記のコードは、新しく作成されたオブジェクトとリストをプロパティとしてダンプしますが、ネストされた静的構造体やその中のものa
はリストしません。
自動生成された静的プロパティがたくさんある場合、すべてをダンプするにはどうすればよいですか?b
C
root - linqpadのルートクラス
LinqPadで定義されたクラスは、UserQueryのネストされた内部クラスです。ルートクラスであるクラスを宣言する方法はありますか?
c# - linq to sql:LEFTOUTERJOINの代わりにJOINを指定する
車、車、自転車の3つのテーブルがあるとします。CarsとBikesの両方に、VehiclesにリンクするVehicleIDFKがあります。
このような車であるすべての車を数えたいです。
ただし、これにより、車両のすべての行が表示され、車両タイプが自転車である行はnullになります。
私はこれを行うためにlinqpadを使用しており、SQLステートメントを見て、これを行う理由を理解しました。これは、x.Car結合で、車両と車の間でLEFT OUTER JOINを実行するためです。つまり、すべての車両が返されます。JOINのみを使用するようにクエリを変更すると、期待どおりに機能します。
このタイプの構文を使用して結合を行うようにlinqに指示する方法はありますか?最終的に私は次のようなことをしたいと思います:
しかし、このエラーのために:
私はこれを行うことになります:
linq - LinqPadと実際の2つのLinqクエリ間のパフォーマンスの質問
質問があります:
LinqPadでは、クエリは約0.3秒で実行されていました。STARS_RouteStopDestinationテーブルには約800Kのレコードがありますが、平均リターンは約30〜90レコードです。
実際には、このクエリから結果を返すメソッドは4秒以上かかりました。それは意味がありませんでした。
私が考えることができる唯一のことは、.Any句に多くの時間がかかっていたということですが、LinqPadはクエリが高速であると述べました。テストを設定しました(名前はご容赦ください):
出力は私を驚かせました:
元の取得:00:00:04.0270000
エンティティの取得:00:00:00.0200000
.Any句を使用したクエリの実行に非常に長い時間がかかるのはなぜですか。また、LinqPadが、同じデータセットに対するエンティティクエリよりも元のクエリの実行速度がわずかに速いと言うのはなぜですか。