まず、これはよくある質問であることを知っています。しかし、三項演算子の DataRow 型などの null 許容型を宣言できない型を比較しているため、他のソリューションを使用できません。また、データをピボットしていて、列の自動生成を true に設定する必要があるため、グリッドで通貨をフォーマットできません。また、1回の呼び出しで生データを取得し、必要な場所でフォーマットを行う必要があるため、通貨を他の場所でフォーマットすることもできません。LinqSql を使用する必要があるのは、Telerik RadGrid にバインドする前にデータを準備しているためです。
var drResults = from t1 in DatesTable.AsEnumerable()
join t2 in dtResult.AsEnumerable() on t1["MONTH_YEAR"] equals t2["MONTH_YEAR"] into t1_t2
from t2 in t1_t2.DefaultIfEmpty()
select new
{
MONTH_YEAR = t1.Field<string>("MONTH_YEAR"),
Appraisal_Fees = t2 != null ? String.Format("{0:C}", t2.Field<decimal>("AppraisalFees")) : 0): 0
};