Я получаю список объектов для обновления, и у меня есть их идентификаторы.Я хочу получить исходные из базы данных, поэтому я делаю:
String[] ids = updatedEvents.Select(ue => ue.id).ToArray();
var originalEventsToUpdate = Db.tbl_ffk_event
.Where(e => ids.Contains(e.id))
.ToArray();
Но что я получаю, используя журнал, это сгенерированный SQL:
SELECT [t0].[id], [t0].[fs_mapping_id], [t0].[fs_id_value], [t0].[desc]
FROM [dbo].[tbl_ffk_event] AS [t0]
WHERE 0 = 1
-- Context: SqlProvider(Sql2008) Model: AttributedMetaModel Build: 4.0.30319.1
И этот SQL означает "получить всю таблицу ".
Как мне сгенерировать" IN ", как это:
SELECT [t0].[id], [t0].[fs_mapping_id], [t0].[fs_id_value], [t0].[desc]
FROM [dbo].[tbl_ffk_event] AS [t0]
WHERE [t0].[id] IN ('aaa','bbb','ccc','ddd','eee',)
Заранее спасибо.
РЕДАКТИРОВАТЬ:
Я чувствую себя глупо, я не видел WHERE 0 = 1
.Это потому, что в этой точке ничего нет в коллекции ids
.Теперь я проверил, что есть элементы, и SQL генерируется правильно.К сожалению.