LINQ で 2 つのデータテーブル間で右結合を行っています。orderby 行で「指定されたキャストが無効です」というエラーが表示されます。
"SomeOtherID" 列は、dbml の System.Int64 型であり、DBNull を許可します。列のデータに null 値が含まれていますが、これは有効です。これらの null は、orderby ステートメントで特定の方法で処理する必要があるようですが、その方法がわかりません。データは Web サービス経由で入ってきます。reference.cs ファイルを確認したところ、列の対応するプロパティは int です。
LINQ ステートメントはどうあるべきか?
var query = (from table1 in DataTable1.AsEnumerable()
join table2 in DataTable2.AsEnumerable()
on (int) table1["CustomerID"] equals (int) table2["CustomerID"] into outer
from table2 in outer.DefaultIfEmpty()
orderby (int?)table2["SomeOtherID"]
select new
{
......
});