Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / LINQ - как сделать refresh? / 20 сообщений из 20, страница 1 из 1
01.04.2008, 13:42
    #35227192
Bill Great
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
LINQ - как сделать refresh?
Привет всем! Как заставить LINQ перепрочитать данные с сервера?
...
Рейтинг: 0 / 0
01.04.2008, 14:50
    #35227453
зы
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
LINQ - как сделать refresh?
метод Refresh у контекста
...
Рейтинг: 0 / 0
01.04.2008, 15:17
    #35227536
Гу
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
LINQ - как сделать refresh?
Bill GreatПривет всем! Как заставить LINQ перепрочитать данные с сервера?

Код: plaintext
DataContext.Refresh(RefreshMode.ClientWins, Contact);
...
Рейтинг: 0 / 0
01.04.2008, 15:21
    #35227554
Bill Great
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
LINQ - как сделать refresh?
зыметод Refresh у контекста
Виноват, число визуально показалось что после Refresh не происходит обновление. Удивительно другое- построив развитую систему отборов на LINQ поражаешься сложности SQL которой он (LINQ) генерит - SQL получаются на несколько порядков сложнее чем то что написано на LINQ!!!
...
Рейтинг: 0 / 0
01.04.2008, 15:56
    #35227670
зы
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
LINQ - как сделать refresh?
значит криво пишешь свои "отборы"
...
Рейтинг: 0 / 0
01.04.2008, 17:01
    #35227930
AlexeiK
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
LINQ - как сделать refresh?
да норма:)
венец технологий общения с SQL.
высокая абстракция,требует сложного фундамента ыыыы,удачи
...
Рейтинг: 0 / 0
01.04.2008, 17:23
    #35227989
Bill Great
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
LINQ - как сделать refresh?
зызначит криво пишешь свои "отборы"
да вроде всё просто. Например есть приходная накладная с детальной частью PrihNakl+ PrihNaklDtl
Код: plaintext
1.
var query = from c in this.PrihNakls
                        select c;
Отбор по товару детальной части
Код: plaintext
1.
2.
3.
4.
 query = from c in query
                        where c.PrihNaklDtls
                        .Count(dt => dt.PartiaLinks.Single().Partia.Artic.va_articul
                            .Contains(filters.va_articul.value)) >  0 
                        select c;
В PrihNaklDtls есть ссылка через PartiaLinks на справочник партий Partia в котором ссылка на товары Artic! Вообщем как в стишке дом, который построил Джек!
...
Рейтинг: 0 / 0
01.04.2008, 17:59
    #35228130
зы
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
LINQ - как сделать refresh?
гавно какое... особенно в названиях
и что оно генерит, интересно?
...
Рейтинг: 0 / 0
02.04.2008, 10:33
    #35229049
Bill Great
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
LINQ - как сделать refresh?
зыгавно какое... особенно в названиях
и что оно генерит, интересно?
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
exec sp_executesql N'SELECT [t0].[pn_id], [t0].[pn_date], [t0].[pn_sclad], [t0].[pn_num], [t0].[pn_mo_id], [t0].[pn_pto_id], [t0].[pn_valutcode], 
[t0].[pn_author], [t0].[pn_inum], [t0].[pn_who_create], [t0].[pn_when_create], [t0].[pn_who_corr], [t0].[pn_when_corr], [t0].[pn_grp_mo_id], 
[t0].[pn_gro_pto_id], [t0].[pn_operation]
FROM [dbo].[PrihNakl] AS [t0]
WHERE ((
    SELECT COUNT(*)
    FROM (
        SELECT 
            (CASE 
                WHEN ((
                    SELECT [t7].[va_articul]
                    FROM [dbo].[PartiaLink] AS [t5]
                    INNER JOIN [dbo].[Partia] AS [t6] ON [t6].[par_id] = [t5].[parl_par_id]
                    INNER JOIN [dbo].[VariArtc] AS [t7] ON [t7].[va_id] = [t6].[par_va_id]
                    WHERE [t5].[parl_pnd_id] = [t1].[pnd_id]
                    )) LIKE @p0 THEN 1
                WHEN NOT (((
                    SELECT [t7].[va_articul]
                    FROM [dbo].[PartiaLink] AS [t5]
                    INNER JOIN [dbo].[Partia] AS [t6] ON [t6].[par_id] = [t5].[parl_par_id]
                    INNER JOIN [dbo].[VariArtc] AS [t7] ON [t7].[va_id] = [t6].[par_va_id]
                    WHERE [t5].[parl_pnd_id] = [t1].[pnd_id]
                    )) LIKE @p0) THEN 0
                ELSE NULL
             END) AS [value], [t1].[pnd_pn_id]
        FROM [dbo].[PrihNaklDtl] AS [t1]
        ) AS [t8]
    WHERE ([t8].[value] = 1) AND ([t8].[pnd_pn_id] = [t0].[pn_id])
    )) > @p1
ORDER BY [t0].[pn_date]',N'@p0 nvarchar(4),@p1 int',@p0=N'%ар%',@p1= 0 
...
Рейтинг: 0 / 0
02.04.2008, 10:34
    #35229057
Bill Great
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
LINQ - как сделать refresh?
зыгавно какое... особенно в названиях
и что оно генерит, интересно?
Вопросы к господину ЗЫ
1 Как правильно называть таблицы ?
2 как правильно построить отбор мастера по условию что в детальной части есть такой товар?
...
Рейтинг: 0 / 0
02.04.2008, 10:44
    #35229091
AlexeiK
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
LINQ - как сделать refresh?
ЗЫ и BillGreat вы случаем не коллеги одной конторы? :))

просто слишком конректные вопросы идут:))

мне кажеться ,что у BillGreat просто убойны SQL получаеться. я думаю когда юзаешь такие высокие абстракции не нужно,смотреть под ноги.а то можно утонуть во всем этом говне. не капайся в этом BillGreat.
...
Рейтинг: 0 / 0
02.04.2008, 13:24
    #35229721
зы
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
LINQ - как сделать refresh?
ну что ж, в целом генератор вывернулся неплохо из поставленного условия, сказать тут нечего :)

Bill Great зыгавно какое... особенно в названиях
и что оно генерит, интересно?
Вопросы к господину ЗЫ
1 Как правильно называть таблицы ?
2 как правильно построить отбор мастера по условию что в детальной части есть такой товар?
1. у тебя смесь дошкольного английского с ломаным сокрашенно-транслитированным русским. Выбери что-нибудь одно, понять что-либо в твоих названиях и твоих таблицах очень сложно
2. зачем у тебя детали накладной связаны с партией через m:n, когда в коде ты явно задаешь условие что там связь исключительно m:1 вызовом Single() ? сделав правильную связь ты уже упростишь запрос до простого джойна и группировки. Ну а текущий вариант можно тоже исправить, если вместо Count() воспользоваться Any(), то запрос упростится на порядок
...
Рейтинг: 0 / 0
02.04.2008, 13:26
    #35229728
зы
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
LINQ - как сделать refresh?
AlexeiKЗЫ и BillGreat вы случаем не коллеги одной конторы? :))

просто слишком конректные вопросы идут:))

поясни
AlexeiK
я думаю когда юзаешь такие высокие абстракции не нужно,смотреть под ноги.а то можно утонуть во всем этом говне.
в гавне нужно копаться постоянно, чтобы знать что оно работает оптимально, иначе потом тебя по уши в гавно зароют сами юзеры. Чем позднее ты понимаешь, что нужно туда смотреть, тем сложнее потом будет все исправить. Гавно имеет особенность размножаться и захватывать территорию
...
Рейтинг: 0 / 0
02.04.2008, 13:31
    #35229749
AlexeiK
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
LINQ - как сделать refresh?
зы AlexeiKЗЫ и BillGreat вы случаем не коллеги одной конторы? :))

просто слишком конректные вопросы идут:))

поясни
AlexeiK
я думаю когда юзаешь такие высокие абстракции не нужно,смотреть под ноги.а то можно утонуть во всем этом говне.
в гавне нужно копаться постоянно, чтобы знать что оно работает оптимально, иначе потом тебя по уши в гавно зароют сами юзеры. Чем позднее ты понимаешь, что нужно туда смотреть, тем сложнее потом будет все исправить. Гавно имеет особенность размножаться и захватывать территорию

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

а про Г,так это да:) если фундамент весь из него сделан,и его разжижает постоянно,то копаться то придеться сильно и часто для укрепления. фу блин самому противно стало от того ,что написал
а так то да,предположим,юзеры сидят на такой высокой абстракции и хрясь,по самые уши в говно,изза того что фундамент разжижился .....тут да,не завидно будет инженеру ,которые это соорудил :)
...
Рейтинг: 0 / 0
02.04.2008, 14:10
    #35229887
Bill Great
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
LINQ - как сделать refresh?
зыну что ж, в целом генератор вывернулся неплохо из поставленного условия, сказать тут нечего :)

1. у тебя смесь дошкольного английского с ломаным сокрашенно-транслитированным русским. Выбери что-нибудь одно, понять что-либо в твоих названиях и твоих таблицах очень сложно

Называть на русском таблицы и поля? Я что то такого не видел!
зы
2. зачем у тебя детали накладной связаны с партией через m:n, когда в коде ты явно задаешь условие что там связь исключительно m:1 вызовом Single() ? сделав правильную связь ты уже упростишь запрос до простого джойна и группировки.
В прикладной задаче партии порождают разные документы и PartiaLink связывает данный тип с партиями. И мне было интересно как же LINQ сообразит что нужно! Он сделал правильно- так как на схеме есть только PrihNaklDtl то он в мэпе и указал их связь!
зы
Ну а текущий вариант можно тоже исправить, если вместо Count() воспользоваться Any(), то запрос упростится на порядок
За Any() спасибо!
...
Рейтинг: 0 / 0
02.04.2008, 14:57
    #35230102
Bill Great
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
LINQ - как сделать refresh?
Bill Great
За Any() спасибо!
С Any запрос сгенерился такой

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
exec sp_executesql N'SELECT 
....
FROM [dbo].[PrihNakl] AS [t0]
WHERE EXISTS(
    SELECT NULL AS [EMPTY]
    FROM [dbo].[PrihNaklDtl] AS [t1]
    WHERE (((
        SELECT [t4].[va_articul]
        FROM [dbo].[PartiaLink] AS [t2]
        INNER JOIN [dbo].[Partia] AS [t3] ON [t3].[par_id] = [t2].[parl_par_id]
        INNER JOIN [dbo].[VariArtc] AS [t4] ON [t4].[va_id] = [t3].[par_va_id]
        WHERE [t2].[parl_pnd_id] = [t1].[pnd_id]
        )) LIKE @p0) AND ([t1].[pnd_pn_id] = [t0].[pn_id])
    )
ORDER BY [t0].[pn_date]',N'@p0 nvarchar(4)',@p0=N'%бу%'
Да ей явно полегчало!
...
Рейтинг: 0 / 0
02.04.2008, 15:43
    #35230264
зы
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
LINQ - как сделать refresh?
AlexeiKпоясняю. типа я подумал,откуда один так много знает о тематике другого,что даже вопрос формулируеться не с точки зрения тех терминов,а тематический терминов .

просто этот товарищ уже давно моет мозги присутствующим своими гавнотаблицами с накладными
...
Рейтинг: 0 / 0
02.04.2008, 15:45
    #35230272
зы
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
LINQ - как сделать refresh?
Bill Great
Называть на русском таблицы и поля? Я что то такого не видел!

увы, я видел. И проблема не в том, что они названы по-русски, проблема в том, что постоянно надо переключать раскладку :) Лучше подучи английский и соответствующие термины.
...
Рейтинг: 0 / 0
03.04.2008, 11:27
    #35232171
Bill Great
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
LINQ - как сделать refresh?
зы
просто этот товарищ уже давно моет мозги присутствующим своими гавнотаблицами с накладными
база Nothwind простовата!
...
Рейтинг: 0 / 0
03.04.2008, 11:27
    #35232179
Bill Great
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
LINQ - как сделать refresh?
зы И проблема не в том, что они названы по-русски, проблема в том, что постоянно надо переключать раскладку :) Лучше подучи английский и соответствующие термины.
Спасибо суровому ЗЫ!
...
Рейтинг: 0 / 0
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / LINQ - как сделать refresh? / 20 сообщений из 20, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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