Как дела SQL разрабатывает оператор 'IN' в LINQ к Объектам (Платформа Объекта), если Содержит, не поддерживается?

Это несколько запутанно, но вы можете сделать это, обернув свою функцию отображения в потоке и используя flatMapConcat примерно так:

Source(List(item1, item2, item3)).flatMapConcat { item =>
  Source(List(item))
    .map(mapF)
    .withAttributes(ActorAttributes.supervisionStrategy { e: Throwable =>
      logger.error("Exception in stream with itemId:" + item.id, e)
      Supervision.Resume
    })
}

def mapF(item: Item) =
  if (item.property < 0) {
    throw new RuntimeException("Error")
  } else {
    i
  }

Это возможно, потому что у каждой стадии потока может быть своя собственная стратегия наблюдения .

13
задан Drew Noakes 15 December 2010 в 20:55
поделиться

2 ответа

Необходимо или использовать этого:

.Where(string.Format("it.ID in {0}", string.Join(",", valueIds.ToArray())));

или создайте ГДЕ часть динамично, как в этом сообщении.

P.S. - информация была обновлена, и этот ответ обновляется следующим образом для поддержания уместности:

Ссылка, на которую ссылаются, содержит следующее обновление:

... в EF4 мы добавили, что поддержка Содержит метод и по крайней мере в этом конкретном случае для параметров со знаком набора. Поэтому этот вид кода теперь работает правильно из поля , и не необходимо использовать любую additinal технологию строительства выражения:

var statusesToFind = new List<int> {1, 2, 3, 4};
var foos = from foo in myEntities.Foos
           where statusesToFind.Contains(foo.Status)
           select foo;
8
ответ дан 2 December 2019 в 01:11
поделиться

Мой обходной путь заключается в преобразовании результата сущностей в Список и после , которые применяют функцию Contains().

Пример:

var items = db.InventoryItem
                .Include("Kind")
                .Include("PropertyValues")
                .Include("PropertyValues.KindProperty")
                .ToList()
                .Where(itm => valueIds.Contains(itm.ID));
-6
ответ дан 2 December 2019 в 01:11
поделиться
Другие вопросы по тегам:

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