我有一个名为 TradeNo 的 INT 字段,它可能包含 NULL 值。要求是在下拉菜单中显示“合约 ID”和括号中的“交易编号”,如果“交易编号”为空,则显示 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 转换为数据库函数?