|
|
|
LINQ замена Where in в SQL
|
|||
|---|---|---|---|
|
#18+
мне нужна такая вот выборка Код: plaintext 1. 2. Пробовал так. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. Выдает ошибку: LINQ to Entities does not recognize the method 'Boolean Contains... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.11.2008, 13:22 |
|
||
|
LINQ замена Where in в SQL
|
|||
|---|---|---|---|
|
#18+
Dmitry_Minskмне нужна такая вот выборка Код: plaintext 1. 2. Пробовал так. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. Выдает ошибку: LINQ to Entities does not recognize the method 'Boolean Contains... Код: plaintext Pro LINQ: Language Integrated Query in C# 2008 Copyright © 2007 by Joseph C. Rattz, Jr. p 442 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.11.2008, 14:11 |
|
||
|
LINQ замена Where in в SQL
|
|||
|---|---|---|---|
|
#18+
Dmitry_Minskмне нужна такая вот выборка Код: plaintext 1. 2. Пробовал так. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. Выдает ошибку: LINQ to Entities does not recognize the method 'Boolean Contains... У меня работает и так Код: plaintext 1. 2. 3. 4. 5. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.11.2008, 14:16 |
|
||
|
LINQ замена Where in в SQL
|
|||
|---|---|---|---|
|
#18+
OldWoker Код: plaintext Pro LINQ: Language Integrated Query in C# 2008 Copyright © 2007 by Joseph C. Rattz, Jr. p 442 Куда вставить Where(c=>ids.Contains(c.id) ?? Если можно напишите полный вариант моего примера. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.11.2008, 14:31 |
|
||
|
LINQ замена Where in в SQL
|
|||
|---|---|---|---|
|
#18+
Dmitry_Minsk Куда вставить Where(c=>ids.Contains(c.id) ?? Если можно напишите полный вариант моего примера. Виноват! В EF это пишется так var query =new ObjectQuery<Data.Department>("SELECT VALUE E FROM Department AS E", db); query = query.Where("it.id in {1,2}"); query = query.OrderBy("it.ID"); ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.11.2008, 14:40 |
|
||
|
LINQ замена Where in в SQL
|
|||
|---|---|---|---|
|
#18+
Dmitry_Minskмне нужна такая вот выборка Код: plaintext 1. 2. Пробовал так. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. Выдает ошибку: LINQ to Entities does not recognize the method 'Boolean Contains... Для вашего примера это будет так Код: plaintext 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.11.2008, 14:44 |
|
||
|
LINQ замена Where in в SQL
|
|||
|---|---|---|---|
|
#18+
читайте Entity SQL Reference ms-help://MS.VSCC.v90/MS.MSDNQTR.v90.en/wd_entityframework/html/61ce7ee1-ffe2-477d-8a9f-835b0a11d900.htm ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.11.2008, 14:45 |
|
||
|
LINQ замена Where in в SQL
|
|||
|---|---|---|---|
|
#18+
Я выбираю данные через LINQ. Не должно быть никакого SQL только объекты... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.11.2008, 14:45 |
|
||
|
LINQ замена Where in в SQL
|
|||
|---|---|---|---|
|
#18+
Dmitry_MinskЯ выбираю данные через LINQ. Не должно быть никакого SQL только объекты... Это не sql а EF SQl, что касается EF LINQ то читайте Supported and Unsupported Methods (LINQ to Entities) ms-help://MS.VSCC.v90/MS.MSDNQTR.v90.en/wd_entityframework/html/7f3ffa5f-f819-4730-bcdb-09b23de3b6d0.htm ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.11.2008, 15:00 |
|
||
|
LINQ замена Where in в SQL
|
|||
|---|---|---|---|
|
#18+
как ни как это ПЕРВАЯ версия EF!!! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.11.2008, 15:01 |
|
||
|
LINQ замена Where in в SQL
|
|||
|---|---|---|---|
|
#18+
Почитайте <a href="http://msdn.microsoft.com/ru-ru/magazine/cc507640.aspx">Вопросы и ответы по Entity Framework.</a> ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.11.2008, 15:08 |
|
||
|
LINQ замена Where in в SQL
|
|||
|---|---|---|---|
|
#18+
ms-help://MS.VSCC.v90/MS.MSDNQTR.v90.en/wd_entityframework/html/c3f393d4-5158-4f1e-830e-c328d3769ae2.htm Contains - Not supported вот так вот.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.11.2008, 15:54 |
|
||
|
LINQ замена Where in в SQL
|
|||
|---|---|---|---|
|
#18+
Dmitry_Minsk, можно попробовать так. Хотя это тоже что и у Вас. Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.11.2008, 20:15 |
|
||
|
LINQ замена Where in в SQL
|
|||
|---|---|---|---|
|
#18+
Читайте: Set Methods (LINQ to Entities) Код: plaintext 1. 2. 3. Ваш код будет прекрасно работать в Linq To Sql, но не в Linq To Entities. Linq To Sql сгенерит что-то вроде: Код: plaintext 1. 2. 3. Entities так не умеет. Я бы попробовал что-то типа: int [] ids = {1, 2, 3}; var q = from d in ctx.Documents select d where d.id == ids[0]; for(for i = 1; i < ids.Count; i++) { q = q.Union(from d in ctx.Documents select d where d.id == ids[i]); } var result = q.ToList(); ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2008, 03:14 |
|
||
|
LINQ замена Where in в SQL
|
|||
|---|---|---|---|
|
#18+
Извиняюсь за ошибки, вот этот код сработает точно. Linq To Entities настолько неповоротлив, что даже на индексацию массива не может вычислить, приходится присваивать значение переменной. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2008, 03:46 |
|
||
|
LINQ замена Where in в SQL
|
|||
|---|---|---|---|
|
#18+
gpИзвиняюсь за ошибки, вот этот код сработает точно. Linq To Entities настолько неповоротлив, что даже на индексацию массива не может вычислить, приходится присваивать значение переменной. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. Выглядит страшновато, а чем не нравится решение на EF SQL? Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.12.2008, 12:31 |
|
||
|
LINQ замена Where in в SQL
|
|||
|---|---|---|---|
|
#18+
OldWoker Выглядит страшновато, а чем не нравится решение на EF SQL? Код: plaintext Нужно чтобы не было привязки к полям таблицы - в данном случае поле id, хотелось бы все реализовать объектным способом. Пробовал через JOIN, тоже ошибка вылетает... Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. Если же JOIN идет на 2 массива, то все ok.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.12.2008, 14:37 |
|
||
|
LINQ замена Where in в SQL
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.12.2008, 14:39 |
|
||
|
LINQ замена Where in в SQL
|
|||
|---|---|---|---|
|
#18+
Естественно, Join "на два фронта" тоже не будет работать. В ссылках выше все описано. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.12.2008, 23:40 |
|
||
|
LINQ замена Where in в SQL
|
|||
|---|---|---|---|
|
#18+
OldWokergpИзвиняюсь за ошибки, вот этот код сработает точно. Linq To Entities настолько неповоротлив, что даже на индексацию массива не может вычислить, приходится присваивать значение переменной. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. Выглядит страшновато, а чем не нравится решение на EF SQL? Код: plaintext Не нравится потому что это не Linq. А в теме сказано Linq. Ну попробуйте расширить этот метод на случай массива с 20 вхождениями, и все будет понятно. Обратно к генерации кода возвращаемся. Не уверен, что в этом случае код будет сколько-нибудь изящнее чем приведенный здесь. Кстати, зачем вдруг понадобилась такая конструкция, где вы храните список ID документов, кроме базы? Большинство подобных тактических проблем имеют архитектурное решение. Предположим, если вы сформировали некий список идентификаторов на сервере, вы бы вызывали эту процедуру по идентификатору списка, вместо того, чтобы передавать массив в процедуру. PS. Совершенно непонятно, вообще-то, почему EF не может сделать нормального linq. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.12.2008, 23:52 |
|
||
|
LINQ замена Where in в SQL
|
|||
|---|---|---|---|
|
#18+
Dmitry_MinskOldWoker Выглядит страшновато, а чем не нравится решение на EF SQL? Код: plaintext Нужно чтобы не было привязки к полям таблицы - в данном случае поле id, хотелось бы все реализовать объектным способом. Вы не поняли - id это из EDM могу в EDM назвать поле Myid тогда запрос будет Код: plaintext 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.12.2008, 11:27 |
|
||
|
LINQ замена Where in в SQL
|
|||
|---|---|---|---|
|
#18+
OldWoker... а чем не нравится решение на EF SQL? Код: plaintext Так тоже не получается. На самом деле нужно написать запрос сложнее. Типа Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. Пока не получется сделать через Where("it.id in {1,2,3}")... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.12.2008, 19:43 |
|
||
|
LINQ замена Where in в SQL
|
|||
|---|---|---|---|
|
#18+
У вас в принципе все верно. Вот гарантированно работающий пример использующий LINQ to SQL Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. OctopusClassesDataContext - это название класса вашего контекста Dmitry_Minskмне нужна такая вот выборка Код: plaintext 1. 2. Пробовал так. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. Выдает ошибку: LINQ to Entities does not recognize the method 'Boolean Contains... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.12.2008, 14:12 |
|
||
|
|

start [/forum/topic.php?fid=17&msg=35681793&tid=1352018]: |
0ms |
get settings: |
9ms |
get forum list: |
20ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
89ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
76ms |
get tp. blocked users: |
2ms |
| others: | 250ms |
| total: | 469ms |

| 0 / 0 |
