Версия Linq оператора “IN” SQL

Одно замечание об использовании NetServerGetInfo (), которая все еще работает в Windows 10 (10240.th1_st1) ...

https://msdn.microsoft.com/en-us/library/windows/desktop/aa370903%28v=vs.85%29.aspx

sv101_version_major

Основной номер версии и тип сервера.

Номер основной версии операционной системы указывается в младших 4 битах. Тип сервера указан в старших 4 битах. Битовая маска MAJOR_VERSION_MASK, определенная в заголовке Lmserver.h {0x0F}, должна использоваться приложением для получения основного номера версии от этого члена.

Другими словами, (sv101_version_major & MAJOR_VERSION_MASK).

23
задан Brian David Berman 22 May 2009 в 02:19
поделиться

3 ответа

Что-то вроде

var TagIds = new int[] {12, 32, 42};

var q = from map in Context.TagMaps 
        where TagIds.Contains(map.TagId)
        select map.Items;

должно делать то, что вам нужно. Это сгенерирует предложение In (12, 32, 42) (или, точнее, параметризованное предложение IN, если я не ошибаюсь).

50
ответ дан 29 November 2019 в 01:02
поделиться

данный массив элементов:

var list = new int[] {2,3,4}

использование:

where list.Contains(tm.TagId)
15
ответ дан 29 November 2019 в 01:02
поделиться
List<int> tagIds = new List<int>() {2, 3, 4, 7};
int tagIdCount = tagIds.Count;
    //
// Items that have any of the tags
//  (any item may have any of the tags, not necessarily all of them
    //
var ItemsAnyTags = db.Items
  .Where(item => item.TagMaps
    .Any(tm => tagIds.Contains(tm.TagId))
  );

    //
// Items that have ALL of the tags
//  (any item may have extra tags that are not mentioned).
    //
var ItemIdsForAllTags = db.TagMap
  .Where(tm => tagIds.Contains(tm.TagId))
  .GroupBy(tm => tm.ItemId)
  .Where(g => g.Count() == tagIdCount)
  .Select(g => g.Key);
    //
var ItemsWithAllTags = db.Items
  .Where(item => ItemsIdsForAllTags.Contains(item.ItemId));

//runs just one query against the database
List<Item> result = ItemsWithAllTags.ToList();
1
ответ дан 29 November 2019 в 01:02
поделиться
Другие вопросы по тегам:

Похожие вопросы: