我有一个表包含一些字段,如名字,公司名称等

时间:2012-08-01 08:40:35

标签: sql-server-2008 c#-4.0

我有一个表包含一些字段,如名字,公司名等。现在我想要第一个字符从“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;

1 个答案:

答案 0 :(得分:1)

如果我理解你的问题,我认为你需要在SQL中使用LINQ等效的COALESCE。对于每一行,您需要查看公司名称和FirstName,以确定要对哪些进行比较。

这样的事情可能有用:

。选择(c =>(c.Company ?? c.FirstName))    .Where(c => c.StartsWith(“A”))