我有一个 linq 查询,有时字符串字段产品名称可能为空,为空。这是表中的一个新字段,如果尚未输入数据,则在运行查询时会出错。我需要做的是检查 null,如果 null 用下拉列表中的文本值替换 null/空值。我已经尝试了几件事,但无法让它工作。
public IQueryable<Product> BindProduct([Control("ddProductName")] int? ProductNameId)
{
var prod = from c in _DbContext.Products
where c.ProductNameId == ProductNameId
orderby string.IsNullOrEmpty(c.ProductName) ? ddProductName.SelectedItem.Text : c.ProductName,
c.ItemNumber
select c;
return prod;
}
变成:
public IQueryable<Product> BindProduct([Control("ddProductName")] int? ProductNameId)
{
var prodName = ddProductName.SelectedItem.Text;
var prod = from c in _DbContext.Products
where c.ProductNameId == ProductNameId
let sortName = c.Name ?? prodName
orderby sortName, c.ItemNumber
select new { c, sortName };
return prod;
}
更新: 我不认为我很清楚。我需要做的是检查 null,如果 null 用下拉列表中的文本值替换 null/空值。