2013-11-27 3 views
0

Я хотел бы добавить один пункт к результатам запроса Linq. Я знаю, что невозможно подключиться к локальному источнику и источнику SQL. Итак, можно ли построить запрос, чтобы сделать то же самое, что и это?Добавить один элемент в LINQ к SQL запроса

SELECT ID FROM Types 
UNION 
SELECT 1 

Лучшее, что я придумал это:

List<int> OrgList = DBContext.Types.Select(b => b.ID).ToList(); 
OrgList.Add(1); 

но я предпочел бы добавить товар заранее и все еще имеют IQueryable. Или есть веская причина не делать этого таким образом?

+0

'OrgList' и' OrganisationList' оба же типа? Однако, если вам нужен «union», вы можете использовать [Queryable.Union] (http://msdn.microsoft.com/en-us/library/bb156049%28v=vs.110%29.aspx) –

+0

Да, моя ошибка , благодаря. Я пробовал Союз и не мог заставить его работать, но я дам ему еще один шаг и опубликую проблему. – enneacross

+0

помните, что он ожидает список, когда вы делаете союз. Таким образом, вы должны пройти '.Union (новый список () {1});' –

ответ

0

Вы должны получить данные из БД, а затем добавить новый элемент, как вы сделали в своем коде.

Единственным способом иметь IQueryable было бы исключить добавление нового элемента к точке, так как запрос был разрешен.

0

Вы можете использовать союз:

var query = DBContext.Types.Select(b => b.ID).ToList().Union(new[]{1}); 

Не тестировался, но он должен работать

0

Попробуйте Concat

var result = DBContext.Types.Select(p => p.ID) 
      .Concat(new List<int>() { 1 }).ToList(); 
+0

Спасибо. Я попробовал это и имел ту же проблему, что и с Союзом, но я думаю, что это было мое понимание того, как работает linq to SQL. – enneacross

Смежные вопросы