我有一个表包含一些字段,如名字,公司名等。现在我想要第一个字符从“A”开始的公司名称,如果公司名称为空,则搜索条件将应用于名字,即第一个字符开始来自“A”。我可以解决它吗?给我查询。我已经应用了以下查询:
var query = _affiliateRepository.Table; if(!showHidden) query = query.Where(a => a.Active);
if (Where(from a in query where a.Address.Company.HasValue))
query = from a in query where a.Address.FirstName.StartsWith("a") select a;
else
query = from a in query where a.Address.Company.StartsWith("a") select a;
query = from a in query where a.Address.Company.StartsWith("a") select a;
答案 0 :(得分:1)
如果我理解你的问题,我认为你需要在SQL中使用LINQ等效的COALESCE。对于每一行,您需要查看公司名称和FirstName,以确定要对哪些进行比较。
这样的事情可能有用:
。选择(c =>(c.Company ?? c.FirstName)) .Where(c => c.StartsWith(“A”))