NULL 値を含む可能性のある TradeNo という INT フィールドがあります。要件は、ドロップダウンに「契約 ID」と「取引番号」を括弧で囲んで表示し、「取引番号」が null の場合は N/A を表示することです。
Example:
44444 (2222)
55555 ( N/A )
これが私がうまくいくと思ったものです。これは SelectList を返す私の関数です
public IEnumerable<SelectListItem> GetContractsBySupplierDropDown(string supplier)
{
var result = from c in context.Contracts
where c.Supplier==supplier
orderby c.ContractID
select new {
Text = c.ContractID.ToString() + " (" +
(c.TradeNo.HasValue ?
c.TradeNo.Value.ToString() :
" N/A ").ToString() +
" )",
Value = c.ContractID };
return new SelectList(result, "Text", "Value");
}
返されるエラーは次のとおりです。
LINQ to Entities does not recognize the method 'System.String ToString()'
method, and this method cannot be translated into a store expression.
私が知る限り、表示されるエラーは、EF が ToString をデータベース関数に変換しようとしていることを意味しますか?