Перевести SQL-запрос без предложения FROM в LINQ - PullRequest
0 голосов
/ 20 июня 2011

Как перевести запрос типа "выберите 1, 2" (т.е. без предложения FROM) в оператор LINQ?
Спасибо!

Мне нужно получить разрешения для набора групп пользователей. В SQL это выглядит как

SELECT * 
FROM Permission p 
INNER JOIN (SELECT GroupID 
            FROM [Group] 
            UNION ALL 
            SELECT 555) AS g 
ON (g.GroupID = p.GroupID) 

В моем случае мне нужно программно добавить определенный код вместо «555». Я не хотел бы писать специальную функцию SQL для этого.

Ответы [ 2 ]

3 голосов
/ 20 июня 2011

Полагаю, вы просто хотите создать анонимный тип

var anonymous = new { Column1 = 1, Column2 = 2 };

Редактировать - на основе комментариев

В зависимости от вашей проекции Select вы можете сделать что-то простое, например:

Если это Int:

var query = (from per in context.permissions
             select per).AsEnumerable()
             .Concat( new int[] { 1, 2 });

Если это «класс»

var query = (from per in context.permissions
             select per).AsEnumerable()
             .Concat(new CustomClass[] 
                      { 
                        new CustomClass()
                        {
                           Prop1= 1
                        },
                      }
                     );

Вы также можете изменить .Concat на .Union

1 голос
/ 20 июня 2011

Зачем вам это нужно, чтобы быть linq?

var numbers = new int[] { 1, 2 };

Полагаю,

var numbers = Enumerable.Range(1,2);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...