Создайте объединенный ключ-значение в LinqToSql - PullRequest
0 голосов
/ 29 мая 2020

У меня есть GridView, привязанный к LinqTo Sql -DataSource. Источник данных - это множественное соединение. Мне нужны уникальные ключевые значения для сетки. Но все PrimaryKeys из таблиц могут существовать двойными или нет из-за левых соединений.

Я решил проблему в чистом sql -задаче. Там я создаю идентификатор для TableRows, соединяя два PrimaryKeys и соединяясь с «-». Мне нужен один из идентификаторов для дальнейшей работы с TableRows, другой может быть нулевым.

Так я делаю в SQL -Statement:

select CAST(mitgliedschaft.id as varchar(MAX)) + '-' + CAST(ISNULL(funktion.id, '') as varchar(MAX)) as id from ...... inner join ...... etc

Мне нужны КАСТЫ, чтобы не производить Вычисление с помощью «-» и функции ISNULL, поскольку второй идентификатор может быть пустым.

Теперь мне нужно перенести эту часть сценария в Linq-Statement. Пробовал вот так:

...
...
select new
       {
           ...
           id = mitgliedschaft.id.ToString() + "-" + (funktion.id == null ? 0 : funktion.id).ToString()
           ...

       });

Но не запустил его таким образом. Может ли кто-нибудь помочь мне объединить идентификатор с «-» и идентификатор, который может быть NULL? Если это NULL, это должна быть пустая строка или Null-Di git или что-то еще.

1 Ответ

0 голосов
/ 29 мая 2020

получил:

select new
{
  id = (mitgliedschaft.id.ToString() + "-") + (funktion.id.ToString() ?? "0")
}
...