powered by simpleCommunicator - 2.0.55     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / LINQ: кто какой синтаксис использует?
25 сообщений из 222, страница 2 из 9
LINQ: кто какой синтаксис использует?
    #38871326
Сон Веры Павловны
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttЧем читабельнее код (не только для себя, но и для остальных) -- тем лучше.
Читаемость кода - штука субъективная, и зависящая, например, от привычки к тому или иному виду синтаксиса. Как вы могли убедиться по постингам выше, флюент-синтаксис более удобочитаемым считаю не один я.
Что же до особо сложных и мозголомных конструкций внутри linq - я вообще против них, безотносительно синтаксиса, поскольку они идудт вразрез с принципом intention revealing. Только вынесение таких кусков в отдельные методы, и использование в простых linq-запросах.
...
Рейтинг: 0 / 0
LINQ: кто какой синтаксис использует?
    #38871331
Ilya81
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А часто пользуюсь длинными и вложенными запросами. Только при определённой длине ставлю скобки на разных строках подобно операторным скобкам, чтоб были понятны границы вложенных запросов/конструкций.
...
Рейтинг: 0 / 0
LINQ: кто какой синтаксис использует?
    #38871333
Фотография Диез
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Только Fluent.
По работе приходится писать не только на C#. Лямбды - они и в Индонезии лямбды :)

А разбираться в сахаре, прибитом гвоздями к конкретному языку - расточительство ))
...
Рейтинг: 0 / 0
LINQ: кто какой синтаксис использует?
    #38871350
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сон Веры ПавловныhVosttЧем читабельнее код (не только для себя, но и для остальных) -- тем лучше.
Читаемость кода - штука субъективная, и зависящая, например, от привычки к тому или иному виду синтаксиса. Как вы могли убедиться по постингам выше, флюент-синтаксис более удобочитаемым считаю не один я.
Что же до особо сложных и мозголомных конструкций внутри linq - я вообще против них, безотносительно синтаксиса, поскольку они идудт вразрез с принципом intention revealing. Только вынесение таких кусков в отдельные методы, и использование в простых linq-запросах.

Не вижу причин не пользоваться нативными средствами самого языка, если в отдельных случаях это может улучшить вид и читаемость кода. Принципы «а я вот так вот привык» и «а мне вот так вот больше нравится» — они конечно в определённой степени уместны (для личных разработок), но в целом — не серьёзные, детские и губительные.
...
Рейтинг: 0 / 0
LINQ: кто какой синтаксис использует?
    #38871352
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosда пофиг что там на заборе
ViPRosты можешь это обернуть в метод и вызвать (применить метод такой то) от этого твой код не станет декларативным
декларация - желание, а не путьто есть ты отрицаешь общепринятое классификацию продуктов и толкование терминов, и напитываешь их соками мозга с претензией на сакральный смысл?
гениально, чо.
...
Рейтинг: 0 / 0
LINQ: кто какой синтаксис использует?
    #38871359
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сон Веры Павловны,

Вот, кстати, интересное наблюдение. Чаще всего я использую флюент, так как чаще всего выражения короткие и связаны всего с одной коллекцией. Но иногда я использую сахар, при чём это уже выработано на интуитивном уровне, я не сижу и не размышляю, что же выбрать и не переписываю флюент в сахар или наоборот. Когда представляешь себя запрос и его сложность становится понятно, какой способ выбрать и никаких проблем в связи с этим не испытываю, поэтому у меня нет длиннющих флюент-цепочек, и я вообще никогда не применяю флюентный Join, так как назвать это иначе, чем «убожество» просто нельзя.
...
Рейтинг: 0 / 0
LINQ: кто какой синтаксис использует?
    #38871372
Ilya81
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не вижу ничего такого в Join через лямбды, сам часто его пишу. Если есть корпоративные стандарты и по этому вопросу тоже, конечно, другое дело, но если их по этому вопросу нет, то это кому как.
...
Рейтинг: 0 / 0
LINQ: кто какой синтаксис использует?
    #38871385
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AntonariyViPRosда пофиг что там на заборе
ViPRosты можешь это обернуть в метод и вызвать (применить метод такой то) от этого твой код не станет декларативным
декларация - желание, а не путьто есть ты отрицаешь общепринятое классификацию продуктов и толкование терминов, и напитываешь их соками мозга с претензией на сакральный смысл?
гениально, чо.
не знаю кем это общепринятые
в пролгое я просто справшиваю и получаю ответ
а в скл я спрашиваю и указываю путь вплоть до On a=b и т.д. вплоть до алгоритма соспоставления массивов
если кто то считает это декларативностью то тот кретин
...
Рейтинг: 0 / 0
LINQ: кто какой синтаксис использует?
    #38871390
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ilya81Не вижу ничего такого в Join через лямбды, сам часто его пишу. Если есть корпоративные стандарты и по этому вопросу тоже, конечно, другое дело, но если их по этому вопросу нет, то это кому как.

Затрудняет чтение.

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
var dealercontacts = 
   from c in DealerContact
   join d in Dealer on c.DealerId equals d.Id
   select c;

var dealerContracts = 
   DealerContact.Join(Dealer, 
      c => c.DealerId,
      d => d.DealerId,
      (c, d) => c);



Ещё вроде ничё так, да?

А теперь изобрази вот это во флюенте, потом дай кому-нибудь прочесть:

Код: c#
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.
var results = 
              from c in db.Companies
              join cn in db.Countries on c.CountryID equals cn.ID
              join ct in db.Cities on c.CityID equals ct.ID
              join sect in db.Sectors on c.SectorID equals sect.ID
              where c.CountryID == cn.ID
                   && c.CityID == ct.ID
                   && c.SectorID == company.SectorID
                   && company.SectorID == sect.ID
              select new { 
                  country = cn.Name, 
                  city = ct.Name, 
                  c.ID, 
                  c.Name, 
                  c.Address1, 
                  c.Address2, 
                  c.Address3, 
                  c.CountryID, 
                  c.CityID, 
                  c.Region, 
                  c.PostCode, 
                  c.Telephone, 
                  c.Website, 
                  c.SectorID, 
                  Status = (ContactStatus)c.StatusID, 
                  sector = sect.Name };

return results.ToList();
...
Рейтинг: 0 / 0
LINQ: кто какой синтаксис использует?
    #38871394
Сон Веры Павловны
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttНе вижу причин не пользоваться нативными средствами самого языка
Ээ.. Т.е. по-вашему, флюент - это не нативный синтаксис? А чей тогда? Откуда он взялся? И почему и запросный, и флюентный синтаксис транслируются в IL во всё те же анонимные делегаты, классы, и коллекции, при прочих равных выдавая почти идентичный IL-код?
Код: c#
1.
2.
3.
4.
5.
var numbers = new [] {1};
foreach(var n in from n1 in numbers select n1)
  Console.WriteLine(n);
foreach(var n in numbers.Select(n1=>n1))
  Console.WriteLine(n);


IL
Код: c#
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.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
.method private hidebysig static void  Main() cil managed
{
  .entrypoint
  // Code size       176 (0xb0)
  .maxstack  4
  .locals init ([0] int32[] numbers,
           [1] int32 n,
           [2] int32 V_2,
           [3] int32[] CS$0$0000,
           [4] class [mscorlib]System.Collections.Generic.IEnumerator`1<int32> CS$5$0001,
           [5] class [mscorlib]System.Collections.Generic.IEnumerator`1<int32> CS$5$0002)
  IL_0000:  ldc.i4.1
  IL_0001:  newarr     [mscorlib]System.Int32
  IL_0006:  stloc.3
  IL_0007:  ldloc.3
  IL_0008:  ldc.i4.0
  IL_0009:  ldc.i4.1
  IL_000a:  stelem.i4
  IL_000b:  ldloc.3
  IL_000c:  stloc.0
  IL_000d:  ldloc.0
  IL_000e:  ldsfld     class [mscorlib]System.Func`2<int32,int32> test.Program::'CS$<>9__CachedAnonymousMethodDelegate2'
  IL_0013:  brtrue.s   IL_0026
  IL_0015:  ldnull
  IL_0016:  ldftn      int32 test.Program::'<Main>b__0'(int32)
  IL_001c:  newobj     instance void class [mscorlib]System.Func`2<int32,int32>::.ctor(object,
                                                                                       native int)
  IL_0021:  stsfld     class [mscorlib]System.Func`2<int32,int32> test.Program::'CS$<>9__CachedAnonymousMethodDelegate2'
  IL_0026:  ldsfld     class [mscorlib]System.Func`2<int32,int32> test.Program::'CS$<>9__CachedAnonymousMethodDelegate2'
  IL_002b:  call       class [mscorlib]System.Collections.Generic.IEnumerable`1<!!1> [System.Core]System.Linq.Enumerable::Select<int32,int32>(class [mscorlib]System.Collections.Generic.IEnumerable`1<!!0>,
                                                                                                                                              class [mscorlib]System.Func`2<!!0,!!1>)
  IL_0030:  callvirt   instance class [mscorlib]System.Collections.Generic.IEnumerator`1<!0> class [mscorlib]System.Collections.Generic.IEnumerable`1<int32>::GetEnumerator()
  IL_0035:  stloc.s    CS$5$0001
  .try
  {
    IL_0037:  br.s       IL_0047
    IL_0039:  ldloc.s    CS$5$0001
    IL_003b:  callvirt   instance !0 class [mscorlib]System.Collections.Generic.IEnumerator`1<int32>::get_Current()
    IL_0040:  stloc.1
    IL_0041:  ldloc.1
    IL_0042:  call       void [mscorlib]System.Console::WriteLine(int32)
    IL_0047:  ldloc.s    CS$5$0001
    IL_0049:  callvirt   instance bool [mscorlib]System.Collections.IEnumerator::MoveNext()
    IL_004e:  brtrue.s   IL_0039
    IL_0050:  leave.s    IL_005e
  }  // end .try
  finally
  {
    IL_0052:  ldloc.s    CS$5$0001
    IL_0054:  brfalse.s  IL_005d
    IL_0056:  ldloc.s    CS$5$0001
    IL_0058:  callvirt   instance void [mscorlib]System.IDisposable::Dispose()
    IL_005d:  endfinally
  }  // end handler
  IL_005e:  ldloc.0
  IL_005f:  ldsfld     class [mscorlib]System.Func`2<int32,int32> test.Program::'CS$<>9__CachedAnonymousMethodDelegate3'
  IL_0064:  brtrue.s   IL_0077
  IL_0066:  ldnull
  IL_0067:  ldftn      int32 test.Program::'<Main>b__1'(int32)
  IL_006d:  newobj     instance void class [mscorlib]System.Func`2<int32,int32>::.ctor(object,
                                                                                       native int)
  IL_0072:  stsfld     class [mscorlib]System.Func`2<int32,int32> test.Program::'CS$<>9__CachedAnonymousMethodDelegate3'
  IL_0077:  ldsfld     class [mscorlib]System.Func`2<int32,int32> test.Program::'CS$<>9__CachedAnonymousMethodDelegate3'
  IL_007c:  call       class [mscorlib]System.Collections.Generic.IEnumerable`1<!!1> [System.Core]System.Linq.Enumerable::Select<int32,int32>(class [mscorlib]System.Collections.Generic.IEnumerable`1<!!0>,
                                                                                                                                              class [mscorlib]System.Func`2<!!0,!!1>)
  IL_0081:  callvirt   instance class [mscorlib]System.Collections.Generic.IEnumerator`1<!0> class [mscorlib]System.Collections.Generic.IEnumerable`1<int32>::GetEnumerator()
  IL_0086:  stloc.s    CS$5$0002
  .try
  {
    IL_0088:  br.s       IL_0098
    IL_008a:  ldloc.s    CS$5$0002
    IL_008c:  callvirt   instance !0 class [mscorlib]System.Collections.Generic.IEnumerator`1<int32>::get_Current()
    IL_0091:  stloc.2
    IL_0092:  ldloc.2
    IL_0093:  call       void [mscorlib]System.Console::WriteLine(int32)
    IL_0098:  ldloc.s    CS$5$0002
    IL_009a:  callvirt   instance bool [mscorlib]System.Collections.IEnumerator::MoveNext()
    IL_009f:  brtrue.s   IL_008a
    IL_00a1:  leave.s    IL_00af
  }  // end .try
  finally
  {
    IL_00a3:  ldloc.s    CS$5$0002
    IL_00a5:  brfalse.s  IL_00ae
    IL_00a7:  ldloc.s    CS$5$0002
    IL_00a9:  callvirt   instance void [mscorlib]System.IDisposable::Dispose()
    IL_00ae:  endfinally
  }  // end handler
  IL_00af:  ret
} // end of method Program::Main


hVosttПринципы «а я вот так вот привык» и «а мне вот так вот больше нравится» — они конечно в определённой степени уместны (для личных разработок), но в целом — не серьёзные, детские и губительные.
Я что-то писал про корреляцию моих личных предпочтений с принятыми на моем месте работы стандартами кодирования?
...
Рейтинг: 0 / 0
LINQ: кто какой синтаксис использует?
    #38871410
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сон Веры ПавловныЭэ.. Т.е. по-вашему, флюент - это не нативный синтаксис? А чей тогда? Откуда он взялся? И почему и запросный, и флюентный синтаксис транслируются в IL во всё те же анонимные делегаты, классы, и коллекции, при прочих равных выдавая почти идентичный IL-код?

Всё правильно, а я что сказал? Я сказал только про синтаксис, а не во что он траслируется. И, как обычно, сравнивать что же таки лучше (флюент или сахар) без конкретных примеров — занятие бесперспективное. Покажи мне запрос, и я точно скажу что в данном случае будет лучше — об этом я говорил.
...
Рейтинг: 0 / 0
LINQ: кто какой синтаксис использует?
    #38871415
Span Quote
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
извращенцы
...
Рейтинг: 0 / 0
LINQ: кто какой синтаксис использует?
    #38871417
Ilya81
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttIlya81Не вижу ничего такого в Join через лямбды, сам часто его пишу. Если есть корпоративные стандарты и по этому вопросу тоже, конечно, другое дело, но если их по этому вопросу нет, то это кому как.

Затрудняет чтение.

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
var dealercontacts = 
   from c in DealerContact
   join d in Dealer on c.DealerId equals d.Id
   select c;

var dealerContracts = 
   DealerContact.Join(Dealer, 
      c => c.DealerId,
      d => d.DealerId,
      (c, d) => c);



Ещё вроде ничё так, да?

А теперь изобрази вот это во флюенте, потом дай кому-нибудь прочесть:

Код: c#
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.
var results = 
              from c in db.Companies
              join cn in db.Countries on c.CountryID equals cn.ID
              join ct in db.Cities on c.CityID equals ct.ID
              join sect in db.Sectors on c.SectorID equals sect.ID
              where c.CountryID == cn.ID
                   && c.CityID == ct.ID
                   && c.SectorID == company.SectorID
                   && company.SectorID == sect.ID
              select new { 
                  country = cn.Name, 
                  city = ct.Name, 
                  c.ID, 
                  c.Name, 
                  c.Address1, 
                  c.Address2, 
                  c.Address3, 
                  c.CountryID, 
                  c.CityID, 
                  c.Region, 
                  c.PostCode, 
                  c.Telephone, 
                  c.Website, 
                  c.SectorID, 
                  Status = (ContactStatus)c.StatusID, 
                  sector = sect.Name };

return results.ToList();


Вообще-то да, видать, мне чаще больше одного join (как в верхнем примере) редко случается использовать.
...
Рейтинг: 0 / 0
LINQ: кто какой синтаксис использует?
    #38871431
LameUser
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttIlya81Не вижу ничего такого в Join через лямбды, сам часто его пишу. Если есть корпоративные стандарты и по этому вопросу тоже, конечно, другое дело, но если их по этому вопросу нет, то это кому как.

Затрудняет чтение.

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
var dealercontacts = 
   from c in DealerContact
   join d in Dealer on c.DealerId equals d.Id
   select c;

var dealerContracts = 
   DealerContact.Join(Dealer, 
      c => c.DealerId,
      d => d.DealerId,
      (c, d) => c);



Ещё вроде ничё так, да?

А теперь изобрази вот это во флюенте, потом дай кому-нибудь прочесть:

Код: c#
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.
var results = 
              from c in db.Companies
              join cn in db.Countries on c.CountryID equals cn.ID
              join ct in db.Cities on c.CityID equals ct.ID
              join sect in db.Sectors on c.SectorID equals sect.ID
              where c.CountryID == cn.ID
                   && c.CityID == ct.ID
                   && c.SectorID == company.SectorID
                   && company.SectorID == sect.ID
              select new { 
                  country = cn.Name, 
                  city = ct.Name, 
                  c.ID, 
                  c.Name, 
                  c.Address1, 
                  c.Address2, 
                  c.Address3, 
                  c.CountryID, 
                  c.CityID, 
                  c.Region, 
                  c.PostCode, 
                  c.Telephone, 
                  c.Website, 
                  c.SectorID, 
                  Status = (ContactStatus)c.StatusID, 
                  sector = sect.Name };

return results.ToList();




Мне вот не понятно зачем это писать, если это должно быть автоматом в самом джойне:

Код: c#
1.
2.
3.
4.
   where c.CountryID == cn.ID
                   && c.CityID == ct.ID
                   && c.SectorID == company.SectorID
                   && company.SectorID == sect.ID



В джойне ведь уже должна быть автомат. фильтрация т.к. ты джойниш по этим полям.

Код: c#
1.
2.
3.
4.
5.
var results = 
              from c in db.Companies
              join cn in db.Countries on c.CountryID equals cn.ID
              join ct in db.Cities on c.CityID equals ct.ID
              join sect in db.Sectors on c.SectorID equals sect.ID




Это кривой запрос или так надо писать по техническим причинам?
...
Рейтинг: 0 / 0
LINQ: кто какой синтаксис использует?
    #38871465
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LameUserЭто кривой запрос или так надо писать по техническим причинам?
это он для верности :) (первый раз джойнил)
...
Рейтинг: 0 / 0
LINQ: кто какой синтаксис использует?
    #38871492
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttАлексей КПокажи для left join ?

зы: join стараемся не использовать, стараемся пользоваться ассоциациями.

В последнем проекте вот что использую:

https://github.com/thomaslevesque/Linq.Extras

Это круть. А могли бы предусмотреть сразу и не пришлось бы так корячиться.Ок, посмотрю.
...
Рейтинг: 0 / 0
LINQ: кто какой синтаксис использует?
    #38871497
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttСон Веры Павловны,

Вот, кстати, интересное наблюдение. Чаще всего я использую флюент, так как чаще всего выражения короткие и связаны всего с одной коллекцией. Но иногда я использую сахар, при чём это уже выработано на интуитивном уровне, я не сижу и не размышляю, что же выбрать и не переписываю флюент в сахар или наоборот. Когда представляешь себя запрос и его сложность становится понятно, какой способ выбрать и никаких проблем в связи с этим не испытываю, поэтому у меня нет длиннющих флюент-цепочек, и я вообще никогда не применяю флюентный Join, так как назвать это иначе, чем «убожество» просто нельзя.++

Тут вполне жизненный пример. В нём комбинируются оба способа написания, в зависимости от ситуации.
...
Рейтинг: 0 / 0
LINQ: кто какой синтаксис использует?
    #38871504
Фотография ЕвгенийВ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ilya81,
Брюки
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
 from c in db.Companies
              join cn in db.Countries on c.CountryID equals cn.ID
              join ct in db.Cities on c.CityID equals ct.ID
              join sect in db.Sectors on c.SectorID equals sect.ID
              where c.CountryID == cn.ID
                   && c.CityID == ct.ID
                   && c.SectorID == company.SectorID
                   && company.SectorID == sect.ID


плавно превращаются в шорты
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
 from c in db.Companies
              from cn in db.Countries
              from ct in db.Cities
              from sect in db.Sectors
              where c.CountryID == cn.ID
                   && c.CityID == ct.ID
                   && c.SectorID == company.SectorID
                   && company.SectorID == sect.ID
...
Рейтинг: 0 / 0
LINQ: кто какой синтаксис использует?
    #38871509
Ilya81
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Уж лучше where убрать, а второй вариант - надеяться только на оптимизатор, что он не станет генерировать полное декартово произведение. join всё ж явно подразумевает, что полное декартово произведение не понадобится.
...
Рейтинг: 0 / 0
LINQ: кто какой синтаксис использует?
    #38871516
Фотография ЕвгенийВ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ilya81Уж лучше where убрать, а второй вариант - надеяться только на оптимизатор, что он не станет генерировать полное декартово произведение. join всё ж явно подразумевает, что полное декартово произведение не понадобится.
Тут использование where много гибче. Например можно использовать не строгое равенство, а например >. Да и комбинации полей.
Что касается SqlServer и Oracle, они тут не оплошают. За остальных не скажу.
...
Рейтинг: 0 / 0
LINQ: кто какой синтаксис использует?
    #38871530
Ilya81
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЕвгенийВЧто касается SqlServer и Oracle, они тут не оплошают. За остальных не скажу.
Речь об IQueryable или IEnumerable? Я LINQ часто применяю и при запросе коллекций логического слоя, там вообще БД может не быть.
...
Рейтинг: 0 / 0
LINQ: кто какой синтаксис использует?
    #38871555
Фотография ЕвгенийВ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ilya81 Я LINQ часто применяю и при запросе коллекций логического слоя, там вообще БД может не быть.
Тогда о каком оптимизаторе речь? Там вся надежда на прямоту рук и ParallelEnumerable.
...
Рейтинг: 0 / 0
LINQ: кто какой синтаксис использует?
    #38871601
Ilya81
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЕвгенийВIlya81 Я LINQ часто применяю и при запросе коллекций логического слоя, там вообще БД может не быть.
Тогда о каком оптимизаторе речь? Там вся надежда на прямоту рук и ParallelEnumerable.
О .Net'овском, который по идее должен обрабатывать в т. ч. механизм отложенных запросов, в т. ч. для классов Enumerable и ParallelEnumerable.
...
Рейтинг: 0 / 0
LINQ: кто какой синтаксис использует?
    #38871618
Фотография ЕвгенийВ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ilya81О .Net'овском, который по идее должен обрабатывать в т. ч. механизм отложенных запросов, в т. ч. для классов Enumerable и ParallelEnumerable.
Такого пока не придумали :)
...
Рейтинг: 0 / 0
LINQ: кто какой синтаксис использует?
    #38871619
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей К Тут вполне жизненный пример. В нём комбинируются оба способа написания, в зависимости от ситуации.

Вот-вот, об этом я и говорил, в сахаре такие запросы легко читаются, прям как в SQL, а в цепочке они были бы перегружены оверхедом с лямбдами, точками, скобками (все смешалось в кучу: люди, кони...))
...
Рейтинг: 0 / 0
25 сообщений из 222, страница 2 из 9
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / LINQ: кто какой синтаксис использует?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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