0

Firstname、companyname などのフィールドを含む 1 つのテーブルがあります。最初の文字が「A」から始まる Companyname が必要です。Company name が空の場合、検索条件は First name に適用されます。つまり、First Character は「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;
4

1 に答える 1

1

あなたの質問を理解できれば、SQL の COALESCE に相当する LINQ が必要だと思います。行ごとに、Company Name と FirstName の両方を調べて、比較対象を決定する必要があります。

このようなものがうまくいくかもしれません:

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

于 2012-08-01T12:59:24.167 に答える