私は、コードが最初に書かれたシステムでVS2010とVS2012でうまく動作するlinqクエリを持っていますが、SVNにコミットし、構築されていません。同じコードは2システムで正常に動作しますが、VS2012、.NET Framework 4.0(ターゲットフレームワーク)を持つ他の3システムでは失敗します。System.Linq LinqのクエリはVS2012で動作しませんが、VS2010でうまく動作します
コードに何が問題なのかよくわかりません。私は、書かれたコードがバグを持っていることを理解しており、ひどく間違った方法で書かれています。
ここでは、VS2010では正常に動作しますが、VS2012では失敗するサンプルlinqクエリを示します。クエリd.CandidateType
以上から
from d in db.VacancyCandidates
join c in db.Candidates on new
{ CandidateId = d.CandidateId, CandidateType = d.CandidateType}
equals new { CandidateId = c.CandidateId, CandidateType = c.CanidateTypeId }
........Rest query ......
はNullable<int>
とc.CanidateTypeId
がintです。
私はpostを見て、d.CandidateType
をd.CandidateType.Value
に変更すると、コードが正しくビルドされます。
私の質問は、VS2010でコードがビルドされ、VS2012ではマシンが作成されない理由です。
詳しい情報関連コンパイラ:
のPls。すべてのシステムで、プロジェクトの対象フレームワークは4.0のみであることがわかります。上記の情報は、CSC /?
コマンドを使用して検索されます。C:\Windows\Microsoft.NET\Framework64\V4.0.3.319\
エラー/例外はありますか? – meJustAndrew
コードが間違っているため、VS2010で動作するかどうかは問題ではありません(コンパイラのバグかもしれません)。 '=(int?)c.CandidateTypeId'を追加して移動してください。 –
@IvanStoev私はすでにコードを変更していますが、元のシステムでVS2010とVS2012の間違ったコードが正常に動作したことを理解しようとしています。それは私にとっては興味深い質問です! –