EF с использованием LINQ попытки Содержит В проходе в массиве - PullRequest
1 голос
/ 28 сентября 2011

Есть ли лучший способ записать это CONTAINS из массива?

Я передаю строку / массив в мой оператор LINQ.В SQL код работает

 SELECT * FROM dbo.option1 
 WHERE option1Code IN ('9841','V237','SV02','2057')

В EF с использованием LINQ я пытаюсь

            using (var ctx = new ProductEntities())
        {
            //--------------------------------------------------------------------//
            string csvSKU = '984,237,102,207';
            string[] mArray = csvSKU.Split(',');
            var results = (from o in ctx.option1
                           join p in ctx.Products on o.option1Code equals p.productSKU
                           where mArray.Contains(o.option1Code)                                    
                           orderby o.option1Sort
                           select o).Distinct().ToList();

            return results;

        }

1 Ответ

0 голосов
/ 28 сентября 2011

Это выглядит прекрасно и должно привести к тому же SQL, что и вы, (по крайней мере, для части Contains).

Также не совсем уверен, для чего сейчас нужно ваше объединение - есть ли коды опцийкоторые не имеют записи в таблице Products / productSKU?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...