powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / LINQ пример выдающий ошибку
11 сообщений из 11, страница 1 из 1
LINQ пример выдающий ошибку
    #35132416
Bill Great
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Привет! Я специально создал самый короткий пример, который при выполнении выдают ошибку. Каждый может проверить!
...
Рейтинг: 0 / 0
LINQ пример выдающий ошибку
    #35132477
Bill Great
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ошибка
Код: plaintext
Method 'otbor_field get_Item(System.String)' has no supported translation to SQL.
Если передать как параметр
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
        public IQueryable<Customer> GetCutmors(OtbotDoc fotbordoc)
        {
            var query = this.Customers.AsQueryable();
            if (fotbordoc["CompanyName"].active)
                query = (from c in query
                         where c.CompanyName.Contains(fotbordoc["CompanyName"].value.ToString())
                         select c).AsQueryable<Customer>();

            return query;
        }
и соответственно ошибки при обращении нет
query = db.GetCutmors(db.fotbordoc);
i = query.Count();
...
Рейтинг: 0 / 0
LINQ пример выдающий ошибку
    #35132548
Bill Great
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ещё раз повторю. Смысл примера понять, что можно а что нельзя в LINQ Ведь получается ситуация, когда компилятор сказал good! а при выполнении имеем ошибку, которую не отладить (до SQLProfiler дело не доходит) и не понять!
...
Рейтинг: 0 / 0
LINQ пример выдающий ошибку
    #35133136
зы
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
мда, Михаил, во-первых некультурно выдавать такой шлак людям на просмотр. Тем более чтобы запустить это дело надо ещё напрячься и создать базу, изменить строку подключения (зашитую, епть, в код). Ну а очем можно говорить с человеком, который слово Customers просто переписать не может буква в букву, в результате чего выходит "Cutmors". Но, отбросив лирику и предрассудки, отвечу на вопрос - не знаю. Точнее скорее всего expression visitor просто не лезет так глубоко в твое выражение по доставанию строки, нафиг ему это не надо.
...
Рейтинг: 0 / 0
LINQ пример выдающий ошибку
    #35133433
Bill Great
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
зымда, Михаил,
А мы с вами знакомы в реале? Вы молоды и энергичны, но пишите для веба. Это уже интересно! Ну коль вы меня назвали по имени, то хорошо бы представиться :-)))
зы
во-первых некультурно выдавать такой шлак людям на просмотр. Тем более чтобы запустить это дело надо ещё напрячься и создать базу,

Эта база осноная для примеров
зы
изменить строку подключения . Ну а очем можно говорить с человеком, который слово Customers просто переписать не может буква в букву, в результате чего выходит "Cutmors". Но, отбросив лирику и предрассудки, отвечу на вопрос - не знаю. Точнее скорее всего expression visitor просто не лезет так глубоко в твое выражение по доставанию строки, нафиг ему это не надо.

то есть есть ошибка! Я это проделал максимально быстро (извиняюсь за
Cutmors) после вчерашнего разговора, что у тебя имярек ошибка не возникает!
ИТОГО ОШИБКА ЕСТЬ и ПРЕДУГАДАТЬ ЕЁ НЕВОЗМОЖНО! Это большой минус LINQ
...
Рейтинг: 0 / 0
LINQ пример выдающий ошибку
    #35133465
зы
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Bill Great
А мы с вами знакомы в реале? Вы молоды и энергичны, но пишите для веба. Это уже интересно! Ну коль вы меня назвали по имени, то хорошо бы представиться :-)))

не знакомы, к счастью. connection string в коде зашивать не надо просто

Bill Great
ИТОГО ОШИБКА ЕСТЬ и ПРЕДУГАДАТЬ ЕЁ НЕВОЗМОЖНО! Это большой минус LINQ
ну почему невозможно, по-моему она вполне адекватно вываливается. А предугадать можно на этапе написания кода. Просто запомни что вызов своих методов в лямбда-функцию вставлять нельзя, С# методы не могут быть транслированы в SQL, если для них нет специального преобразования. get_Item() как раз и есть считай вызов метода.
...
Рейтинг: 0 / 0
LINQ пример выдающий ошибку
    #35133512
Bill Great
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
зы
не знакомы, к счастью. connection string в коде зашивать не надо просто

Ладно, настаивать не буду. Но тогда называйте по нику плз. Про строку подключения - так быстрее подправить для себя тестовый пример!
[/quot]
зы
ну почему невозможно, по-моему она вполне адекватно вываливается. А предугадать можно на этапе написания кода. Просто запомни что вызов своих методов в лямбда-функцию вставлять нельзя, С# методы не могут быть транслированы в SQL, если для них нет специального преобразования. get_Item() как раз и есть считай вызов метода.
Но пример демонстрировал другое! Достаточно передать как параметр как всё работает!
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
        public IQueryable<Customer> GetCustomerы(OtbotDoc fotbordoc)
        {
            var query = this.Customers.AsQueryable();
            if (fotbordoc["CompanyName"].active)
                query = (from c in query
                         where c.CompanyName.Contains(fotbordoc["CompanyName"].value.ToString())
                         select c).AsQueryable<Customer>();

            return query;
        }
...
Рейтинг: 0 / 0
LINQ пример выдающий ошибку
    #35133543
зы
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну да, работает, значит мое предположение неверно. Лень думать, я такой код все равно не пишу, можешь спросить в указанном мне месте, там тебе наверняка дадут ответ
...
Рейтинг: 0 / 0
LINQ пример выдающий ошибку
    #35133625
Bill Great
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
зыну да, работает, значит мое предположение неверно. Лень думать, я такой код все равно не пишу, можешь спросить в указанном мне месте, там тебе наверняка дадут ответ
Ладно! Про то и речь, что LINQ иногда ставит в тупик! Я пытался подсоединить исходные тексты, но LINQ не пущает! Интересно про локальные переменные. Если переписать так то опять работает
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
 public IQueryable<Customer> GetCustomers()
        {
srting sname =  fotbordoc["CompanyName"].value.ToString();

            var query = this.Customers.AsQueryable();
            if (fotbordoc["CompanyName"].active)
                query = (from c in query
                         where c.CompanyName.Contains(sname)
                         select c).AsQueryable<Customer>();

            return query;
        }
А как же сборщик мусора? Он srting sname не загребёт? Исчо раз про Connection string - обычно он в app.confige, но что бы вы могли быстрее сделать под себя я его и пихнул в первую строку!
...
Рейтинг: 0 / 0
LINQ пример выдающий ошибку
    #35133664
зы
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Bill Great
А как же сборщик мусора? Он srting sname не загребёт?

нет, с чего бы
Bill Great
Исчо раз про Connection string - обычно он в app.confige, но что бы вы могли быстрее сделать под себя я его и пихнул в первую строку!
мда, а я полез в сеттингс и первым делом поменял там, потом узрел что ещё и в коде лежит
...
Рейтинг: 0 / 0
LINQ пример выдающий ошибку
    #35133682
Bill Great
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
зы
мда, а я полез в сеттингс и первым делом поменял там, потом узрел что ещё и в коде лежит
Ну что же, хотел как лучше, а получилось как всегда! Болно хотелось убедится что ошибка не только на моём компе! А что всё ругаетесь? "Ну а очем можно говорить с человеком, который слово..."? Типа спешил, побыстрее пример сделать :-)))
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / LINQ пример выдающий ошибку
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]