私はSOとother sitesにvarious questions見てきましたが、このしかしそれだけで働いていない、LINQでJOIN
を実行するための正しい構文であることをを表示されます。このLINQ JOINに構文エラーがありますか?
var stages = (from stage in entityManager.TPM_TASKSTAGE select stage);
var results = (from task in pv.TPM_TASK
join st in stages on st.STAGEID equals task.STAGEID
where task.TASKTYPE == "Solution"
select new SolutionTask());
は、今のところ、事実を無視私は実際にを選択してを選択しますが、TPM_TASK
の各行のst.NAME
プロパティにアクセスしたいと思います。 2つのテーブルはSTAGEID
によってリンクされています。 LINQは、結合式で
The name 'st' is not in scope on the left side of 'equals'. Consider swapping the expressions on either side of 'equals'.
、両方st
とtask
が赤squiggliesを持っている:私は、コンパイラエラーを取得します。私が何かダムをやっていると教えてください。
エラーメッセージの正確な指示に従ってみましたか? ( "等しい"のどちらかの側で式を交換することを検討してください) –
@JonSkeet - 実際には私が試した*最初のものでしたが、私の表現は 'task.STAGEID == st.STAGEID'でした。これにより、同様のコンパイラエラーが発生します(式を入れ替えることを提案します)。だから私はやったし、違いを生むかもしれない「平等」な思考に切り替えた。私は 'task.STAGEID equals st.STAGEID'を試しませんでした。これは有効な組み合わせです!一口。 –
あなたが 'task.STAGEID == st.STAGEID'を持っていたとき、同じエラーメッセージを受け取ることはありませんでした。なぜならあなたの参加はその時点で完全に無効だったからです。 –