LINQ to SQL и конкатенация полей в SQL - PullRequest
1 голос
/ 04 ноября 2011

Я хотел бы создать запрос LINQ, который приводит к следующему оператору SQL. Допустим, у меня есть простая таблица с двумя символьными полями - field1 и field2. Мой оператор SQL будет:

    SELECT field1, field2, field1+field2 AS ConcatField
    FROM TableX
    WHERE field1+field2 = 'abcdef'

Как это можно сделать в LINQ?

Ответы [ 2 ]

5 голосов
/ 04 ноября 2011

Вы можете использовать предложение let для определения вашего поля concat, а затем выбрать анонимный тип с 3 полями, которые вы хотите вернуть.вам нужно будет создать массив значений, с которыми вы хотите сравнить, и затем сделать что-то вроде этого:

  List<string> values = .....

  from f in TableX
  let concatfield = f.Field1 + f.Field2
  where values.Contains(concatfield)
  select new
  {
     f.Field1,
     f.Field2,
     concatfield
  }
1 голос
/ 04 ноября 2011

Используя LinqToSql, это можно сделать, проецируя на анонимный тип и поле в нем, которое является комбинацией двух упомянутых вами полей:

var  concatenatedField = from c in ConcatFields
                             where c.something == somethignElse
                             select new {
                               field1 = c.field1
                               field2 = c.field2
                               field3 = c.field1 + c.field2
                              }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...