0

我有一个表,其中包含一些字段,如名字、公司名等。现在我想要第一个字符从“A”开始的公司名,如果公司名称为空,那么搜索条件将应用于名字,即第一个字符从“A”开始“。我该如何解决?给我查询。我已经应用了如下查询:

变种查询 = _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;
4

1 回答 1

1

如果我理解您的问题,我认为您需要 SQL 中 COALESCE 的 LINQ 等效项。对于每一行,您需要同时查看公司名称和名字,以确定与哪个进行比较。

像这样的东西可能会起作用:

.Select (c => (c.Company ?? c.FirstName)) .Where (c => c.StartsWith ("A"))

于 2012-08-01T12:59:24.167 回答