Вход | Регистрация

  1  2  3  4

.Net Core, обмен с 1C по TCP/IP между различными устройствами

.Net Core, обмен с 1C по TCP/IP между различными устройствами
Я
   Serginio1
 
28.09.16 - 12:10
Выложил статьи
http://catalog.mista.ru/public/551698/
https://habrahabr.ru/post/311128/
Примеры можно скачать здесь https://yadi.sk/d/jRSHEA19svgrn

Решил написать кроссплатформенное решение из своего опыта 8 летней давности для обмена данными по TCP/IP между ТСД на Win CE и 1С еще 7-ки. Конечно, с 1С можно обмениваться через Web и HTTP-сервисы, но есть задачи, где нужно взаимодействие с оператором для выбора данных, брать данные, подготовленные на клиенте, печать на мобильный принтер.

    Основные проблемы связаны с сетями с плохим соединением на складах. Поэтому, нужно было уменьшить трафик за счет сжатия данных. Так, при работе в терминальных сессиях были проблемы с проброской портов в медленных сетях — Тормозит печать чека на фискальный регистратор через RDP.

    Также были проблемы при считывании двумерного штрихкода. Медленная печать с терминального сервера. Для решения этих проблем на машине клиента устанавливалась локальная 1С, которая работала как клиент и сервер. Данные со сканеров отправлялись на терминальный сервер и там обрабатывались. Для печати на фискальный регистратор отправлялись данные с сервера по TCP/IP, и с локальной 1С печатался чек. При печати этикеток с сервера оправлялись данные, на основании которых на локальной 1С формировался документ и отправлялся на печать.

    Кроме того, под многое оборудование для Linux нет драйверов. Можно, используя виртуализацию, держать Linux и Windows на одной машине, на Windows считывать данные и обмениваться с Linux по TCP/IP.

    Сейчас много у кого есть ТСД под WinCe, WinMo (недавно предлагали работу по настройке обмена на них). Кроме того, можно использовать ТСД на других осях, используя UWP и Xamarin.

    Кроме того, можно обмениваться сообщениями между клиентами 1С, наподобие чата.
   В большом .Net я часто использую обмен по TCp/IP
http://catalog.mista.ru/public/238584/
http://catalog.mista.ru/public/525806/
 
 
   Garykom
 
301 - 30.09.16 - 17:44
(299) Пробовал писать сайт/сервисы на asp.net и да поначалу вау как круто!

Но потом начинаются грабли, то тут глючит не пойми почему то там, то нагрузку в 100 каких то юзеров не держит (хотя php или jsp легко) или просто взяло и повисло нафик что пришлось сервер ребутать.
   Garykom
 
302 - 30.09.16 - 17:47
(300) Если посмотреть "активность" тупых вопросов по 1С то легко можно подумать что все остальное во всем мире просто в загоне ))

Суть что на java или php достаточно просто погуглить, то на asp.net приходится спрашивать и не факт что ответ будет.
   Serginio1
 
303 - 30.09.16 - 17:49
(301) Ну это зависит от того как код напишешь. Сейчас в .Net Core практически выкинули все синхронные методы.
Многие еще потоки используют.
(302) По Asp.Net на том же http://stackoverflow.com все легко находится.
   Garykom
 
304 - 30.09.16 - 17:51
(303) Счас то может и находится, но когда пробовал писать тогда был ужас, причем самый ужас что никаких бесплатных либ не было, только платные за огромные бабки.
В результате плюнул и перешел на яву, там либ оказалось море и с мануалами.
   Garykom
 
305 - 30.09.16 - 17:51
(304)+ Почему мне понравилась нода, что да технология новая но либ уже больше чем на C#
   Masquerade
 
306 - 30.09.16 - 18:49
(304)

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

О каких либах речь то идет?
   Garykom
 
307 - 30.09.16 - 18:58
(306) работа с офисными форматами xls, doc и прочие разные билиотеки для сетки, баз данных и прочего.

т.е. для всего что выходит за рамки лабораторно/учебного программирования, изначально C# это такая идеальная замена для языка обучения в школах/универах вместо устаревшего Паскаля и слишком сложных C++
   Garykom
 
308 - 30.09.16 - 18:59
(307)+ Тем более что был (ну и есть но уже странно это) такой VB.Net как развитие VB6
   Masquerade
 
309 - 30.09.16 - 19:00
(307)

изначально C# это такая идеальная замена для языка обучения в школах/универах

Я просто был не в курсе
   Garykom
 
310 - 30.09.16 - 19:07
(309) Ну мне пришлось осваивать C# когда писал под WinMobile/WinCE ибо иначе никак (нативно это сдохнуть там было).

И тогда нифига не было, вот банальный FTP и нету (( что есть оно на PocketPC урезано по самое оказалось и полных либ не найти, пришлось на tcp/udp и http обмен переходить причем с 0 все изучая и ваяя.
 
 Рекламное место пустует
   Кирпич
 
311 - 30.09.16 - 19:07
(305) да побойся бога. На шарпах уже все на свете понаписали.
   Gary417
 
312 - 30.09.16 - 19:08
(307) C# этож "убийца явы", какойже это язык для обучения
   Garykom
 
313 - 30.09.16 - 19:10
(311) сам язык и .net фреймворк вышли на удивление удобными

на том же паскале-дельфи писать менее удобно оказалось
   Serginio1
 
314 - 30.09.16 - 19:11
(307) Видно это давно было. Есть и Open XML.
Если не было на C? то был интероп. Особенно на WinMobile/WinCE.
Сейчас многое все поменялось.
   Garykom
 
315 - 30.09.16 - 19:11
(312) ну рынок у явы он отжал это не поспоришь
   Garykom
 
316 - 30.09.16 - 19:12
(314) 10 лет уже как
   Serginio1
 
317 - 30.09.16 - 19:12
(313) Я сам с огромным сожалением оставл Delphi в прошлом.
   Garykom
 
318 - 30.09.16 - 19:15
(317) угу чего мне сча реально не хватает так это C# + Lazarus, в смысле писать на C# и компиляция под любые платформы в нативный код ((
   Garykom
 
319 - 30.09.16 - 19:16
(318)+ Без громоздких .Net Framework'ов чтобы запускалось нативно.
Java кстати тоже сча пипец уже с размерами...
   Serginio1
 
320 - 30.09.16 - 19:16
(318) Сейчас есть .Net Native. Но, он только вначале пути.
   Garykom
 
321 - 30.09.16 - 19:17
(320) не взлетит он, не смогут перелопатить весь .Net никак, а без этого смысла уже мало, мощщи классов/либ будет не хватать привычной.
   Gary417
 
322 - 30.09.16 - 19:18
(321) ну всё зависит от желания МС выйти на линукс
   Serginio1
 
323 - 30.09.16 - 19:21
   Serginio1
 
324 - 30.09.16 - 19:21
(322) Так у них есть смысл в облаках. Они там кучу денег зарабатывают.
   Gary417
 
325 - 30.09.16 - 19:25
(324) а причём тут облака и .Net?
   Garykom
 
326 - 30.09.16 - 19:37
Кста кто еще удивился что MS для своей мобильно-телефонной платформы не додумались реализовать AndroidJava машину?

Или додумались но не смогли? Так бы куча софта/игрушек сразу были для Windows Phone и покупали бы на ура. А то ценник сча смешной (как и на планшеты с Windows 10) но не берутс.

Сам взял для отделов более дорогие (хуже технически/функционально) планшеты но зато с Android а не с Windows 10. Ибо повозился и плюнул, нафик мне траблы от отделов.
   Gary417
 
327 - 30.09.16 - 19:38
(326) вообщето они хотели, но проект прикрыли
   Gary417
 
328 - 30.09.16 - 19:39
Project Astoria называлось вродбы
   Garykom
 
329 - 30.09.16 - 19:39
(327) Не-не то что читал то было полный эмулятор android'а включая натив софт а не только под Далвик
   Serginio1
 
330 - 30.09.16 - 19:48
(326) А при том, что они туда перетягивают Linux и прочее и дают свои инструмены.
   Masquerade
 
331 - 30.09.16 - 19:59
(266)

В лоб. Чтоб понятно было.

var string_array = new String[] {"hello",
                   "I prefer Jelly Belly beans.",
                   "When hell freezes over!" };



            var min_word = string_array.OrderBy(x => x.Length).FirstOrDefault();

            var all_indexes = Enumerable.Range(0, min_word.Length+1);

            var index_pairs = from index1 in all_indexes
                        from index2 in all_indexes
                        where index1 < index2
                        select new { start = index1, end = index2 };

            var all_variations = from index_pair in index_pairs
                                select new { result = min_word.Substring(index_pair.start, index_pair.end - index_pair.start) };

            var _max_substring = from variant in all_variations
                                 from word in string_array
                                 select new { variant_length = variant.result.Length, substring = variant.result, present = word.IndexOf(variant.result)>-1 ,word = word  };

            var max_substring = _max_substring.
                Where(x => x.present).
                GroupBy(x=>x.substring).
                Where(x=>x.Count()==string_array.Count()).
                OrderByDescending(x=>x.Key.Length).
                FirstOrDefault().
                Key;

            Console.Out.WriteLine(max_substring);
   Masquerade
 
332 - 30.09.16 - 20:00
(331) +

Можно и в a la одну строчку, но тутошний народец этого не любит))))))
   Serginio1
 
333 - 30.09.16 - 20:10
(326) Да вроде есть https://www.ikvm.net/
Но проблема не в софте. Там и сейчас софта хватает, и аппараты цена качество отменное. Просто народ уже подсел на андроид Ios
 
 
   Masquerade
 
334 - 30.09.16 - 20:20
(266)

Покороче

var string_array = new String[] {"hello",
                   "I prefer Jelly Belly beans.",
                   "When hell freezes over!" };

            
            var all_variations = from start in Enumerable.Range(0, string_array.OrderBy(x => x.Length).FirstOrDefault().Length + 1)
                              from end in Enumerable.Range(0, string_array.OrderBy(x => x.Length).FirstOrDefault().Length + 1)
                              where start < end
                              select new { result = string_array.OrderBy(x => x.Length).FirstOrDefault().Substring(start, end - start) };


            var max_substring = String.Empty;

            foreach (var variant in all_variations.OrderByDescending(x => x.result.Length))
            {
                if (string_array.Select(word => word.IndexOf(variant.result) > -1 ? 1 : 0).Sum() == string_array.Count())
                {
                    max_substring = variant.result;
                    break;
                }
            }

            Console.Out.WriteLine(max_substring);
   Serginio1
 
335 - 30.09.16 - 20:49
(334) Добавил в PasteBin

<iframe src="//pastebin.com/embed_iframe/jPaqH4dX" style="border:none;width:100%"></iframe>


http://pastebin.com/jPaqH4dX
   Loky9
 
336 - 30.09.16 - 22:03
(331) Спасибо! Это было познавательно.
(334) (335) И какой вывод можно сделать?
   Serginio1
 
337 - 30.09.16 - 22:49
Что в 1С не хватает Linq to SQL и Linq to Object
   Loky9
 
338 - 30.09.16 - 22:52
(337) И статической типизации, конечно же.
   Loky9
 
339 - 30.09.16 - 23:11
Немного побаловался с тем кодом, найденным в инете:

from itertools import permutations

def long_substr(data):
    first, substr = data[0], ''
    if len(data) > 1 and len(first) > 0:
        for i, j in permutations(range(len(first) + 1), 2):
            if j - i > len(substr) and all(first[i:j] in x for x in data):
                 substr = first[i:j]
    return substr

print(long_substr(['hello',
                   'I prefer Jelly Belly beans.',
                   'When hell freezes over!']))
   Masquerade
 
340 - 30.09.16 - 23:51
(339)
Тю, так ты еще и в нете код ищешь, а потом сюда постишь...
   Loky9
 
341 - 01.10.16 - 00:00
(340) Когда как. Не вижу проблемы.
   Loky9
 
342 - 01.10.16 - 00:15
http://pastebin.com/qsyyjE1N - 100% моё, чтоб вопросов не было. С блэкджеком и ОРМ.
   Masquerade
 
343 - 01.10.16 - 00:49
(342)
Да что там подстроку искать - скука.

Вот была задача - есть массив адресов.

Один адрес - одна строка.

Надо выдрать первую букву улицы/проспекта/площади.

На LINQ несколько строк.))))
   Masquerade
 
344 - 01.10.16 - 00:49
(343)

-- На LINQ несколько строк.

Не самых коротких, правда))))
   Serginio1
 
345 - 01.10.16 - 10:49
Нужно иметь ввиду, что Linq расширяем за счет своих методов расширителей. Например
http://rsdn.org/forum/prj.codejam/6569269.flat
   Masquerade
 
346 - 01.10.16 - 11:15
(345)
Это ты к чему?
   Serginio1
 
347 - 01.10.16 - 12:26
(346) Я к тому, что стандартная библиотека прежде всего направлена на Sql. Да и там много не хватает. Но она расширяема.
Например в C++ можно найти минимальное значение для любого типа.
В .Net метод Min только для числовых
https://msdn.microsoft.com/ru-ru/library/system.linq.enumerable.min(v=vs.110).aspx

Но можно расширить например http://rsdn.org/forum/dotnet/6506104.1

  В данном случае вместо
Enumerable.Range(0, string_array.OrderBy(x => x.Length).FirstOrDefault().Length + 1) 


Можно написать

Enumerable.Range(0, string_array.MinItem(x => x.Length).Length + 1)
   Serginio1
 
348 - 01.10.16 - 12:40
А вообще то для данного случая нужно было тспользовать
Enumerable.Range(0, string_array.Min(x => x.Length)+ 1)

https://msdn.microsoft.com/ru-ru/library/bb548864(v=vs.110).aspx
   Masquerade
 
349 - 01.10.16 - 14:00
(348)
Так можно и всю задачу решить ОДНИМ методом расширения.

И то что "стандартная библиотека направлена на SQL" - это твои фантазии.

И "вообще-то" тебе предложили написать код - ты слился в лучших традициях.

Так что незачет.
 
 Рекламное место пустует
   Loky9
 
350 - 01.10.16 - 14:14
(343) [i.group(1) for i in map(re.compile(r'(?:\s+|\A)(?:ул|пр-кт|пл)(?:\.|\s+)\s*(\w)', re.I).search, adresses) if i]

Всего делов.
   Loky9
 
351 - 01.10.16 - 16:08
(286) В питоне3 появился type hinting. Рантайм типы не проверяются, но любые нуждающиеся средства могут получить подсказку по типу аргумента. IDE это используют
http://savepic.su/7534189.png
   Serginio1
 
352 - 01.10.16 - 21:59
(349) Нет не фатазии. Ибо стандартный Linq подходит под IQueryable

https://habrahabr.ru/post/256821/

 Что касается 
Enumerable.Range(0, string_array.MinItem(x => x.Length).Length + 1
То это стандартный метод. А насчет слился считай как хочешь.

(351) Вот интересно. Идут по пути TypeScript. Чего и 1С нужно брать на вооружение
   Masquerade
 
353 - 01.10.16 - 22:02
(350)
Ты такой простой.

Ты не знаешь, как заданы эти сокращения, улица может быть как

ул.
у-ца
улица

и прочее. С проспектами и площадями - тоже самое.

Максимум что известно, что способ (формат) более менее одинаков.
   Serginio1
 
354 - 01.10.16 - 22:03
(349)
 Я не знаю чего ты так возмутился
 Я просто привел стандартный Linq метод
string_array.Min(x => x.Length)

https://msdn.microsoft.com/ru-ru/library/bb548864(v=vs.110).aspx

Вместо

string_array.OrderBy(x => x.Length).FirstOrDefault().Length
   Loky9
 
355 - 01.10.16 - 22:13
(353) Обычно всё что не определено во вводной берётся на своё усмотрение. Я усмотрел из "Приложение 1 к описанию классификатора адресов Российской Федерации (КЛАДР)". Если однозначно определить вхождение элемента невозможно, задача не решается.
Так что добавьте недостающие варианты в регулярку и не имейте мне мозг.
   Masquerade
 
356 - 01.10.16 - 22:20
(355)

-- и не имейте мне мозг.

Да больно надо, это не я код из нета сюда пощу с лозунгами :"А ну-ка, девочки!"

Это был чисто спортивный интерес - вычислить паттерн формата адреса и извлечь из него искомое.
   Loky9
 
357 - 01.10.16 - 22:24
(356) С конкретно тем кодом был подтекст спецом для Garykom
Успехов в освоении регулярок!
   Masquerade
 
358 - 02.10.16 - 00:54
(355)

--Если однозначно определить вхождение элемента невозможно, _задача не решается_.

Тобой.)))

Это значит, что регулярка не работает.
А по другому ты не умеешь.

Признаешь?
   Loky9
 
359 - 02.10.16 - 00:56
(358) Я могу эту примитивную задачу решать как угодно. Хватит понтов.
   Loky9
 
360 - 02.10.16 - 00:57
Неточные методы дают неточные решения. Только и всего.
   Loky9
 
361 - 02.10.16 - 01:07
(344) Жду обещанного решения на LINQ "в несколько строк" уже для строк произвольного формата.
Осилишь?
   Masquerade
 
362 - 02.10.16 - 10:14
(361)
А ты в нете поищи.
   Loky9
 
363 - 02.10.16 - 10:15
(362) Быстро ты слился.
   Masquerade
 
364 - 02.10.16 - 10:28
(363)
Тебе хватит и того бисера, что я уже наметал
   Loky9
 
365 - 02.10.16 - 10:30
Пока вывод: LINQ - громоздкое, бесполезное унылое уг.
   Serginio1
 
366 - 02.10.16 - 12:12
(365) Ну тебе виднее. Огромная куча народа использует в том числе и для SQL. Намного удобнее 1С кого конструктора итд.
   Mauser
 
367 - 02.10.16 - 22:40
(366) Когда очередную статью на хабре ждать?
   Serginio1
 
368 - 03.10.16 - 10:05
(367) Наверное когда уже выйдет .Net Core 1.1
Или, что маловероятно, когда 1С добавит возможность передавать в параметрах и возвращать объекты ВК.
Сейчас займусь Xamarin. Посмотрю, что изменилось с времен 1C Messenger для отправки сообщений, файлов и обмена данными между пользователям

 Если появится, что то интересное, то тоже напишу
   Loky9
 
369 - 03.10.16 - 12:09
(366) Виднее. Смотри, берём код (331) и дословно транслируем:

from itertools import groupby

string_array = ['hello',
                'I prefer Jelly Belly beans.',
                'When hell freezes over!']

min_word = min(string_array, key=len)
all_indexes = range(len(min_word))
index_pairs = [(index1, index2)
               for index1 in all_indexes
               for index2 in all_indexes
               if index1 < index2]
all_variations = [min_word[start:end] for start, end in index_pairs]
_max_substring = [(len(variant), variant, variant in word, word)
                  for variant in all_variations
                  for word in string_array]
max_substring = max((gkey
                     for gkey, grp in
                     groupby(sorted(filter(lambda x: x[2], _max_substring),
                                    key=lambda x: x[1]),
                             key=lambda x: x[1])
                     if len(tuple(grp)) == len(string_array)),
                    key=len)
print(max_substring)

Исключительно на базовых средствах получилось более кратко.
   Serginio1
 
370 - 03.10.16 - 13:22
(369) Тоже самое и с Linq

Там легко расширить. 
И вместо
min_word = min(string_array, key=len)
all_indexes = range(len(min_word))
index_pairs = [(index1, index2)


index_pairs=Enumerable.Range(0, string_array.Min(x => x.Length- 1);

Все остальное как в .Net Core, обмен с 1C по TCP/IP между различными устройствами

Большой разницы не вижу. Особенно если ввести MinItem.


Вместо
string_array.OrderBy(x => x.Length).FirstOrDefault()

string_array.MinItem(x => x.Length)

 Даже еще короче получится. А вот читаемость у Linq лучше. При этом Автодополнение итд.

Кратко, не значит понятно.
   Loky9
 
371 - 03.10.16 - 21:42
(370) " Тоже самое и с Linq
Там легко расширить."

С другой стороны тоже можно расширить:

from itertools import permutations, product, groupby

def group_by(iterable, **kwargs):
    for key, grp in groupby(sorted(iterable, **kwargs), **kwargs):
        yield key, tuple(grp)

string_array = [
    'hello',
    'I prefer Jelly Belly beans.',
    'When hell freezes over!']

min_word = min(string_array, key=len)
all_variations = (
    min_word[start:end]
    for start, end in
    permutations(range(len(min_word)), 2))
usable_vars = (
    variant
    for variant, word in
    product(all_variations, string_array)
    if variant in word)
max_substring = \
    max((gkey
         for gkey, grp in
         group_by(usable_vars)
         if len(grp) == len(string_array)),
        key=len)
print(max_substring)

Кому хочется большего пишут свои линки ( https://github.com/heynemann/pynq/wiki ), или используют бронебойный http://pandas.pydata.org/pandas-docs/stable/10min.html
"А вот читаемость у Linq лучше." 
Я бы не сказал. Ни SQL, ни функциональный стиль, куча дополнительных ключевых слов и с ними правил синтаксиса, борьба с типизацией.

"Кратко, не значит понятно." 
Не значит, но зачастую сопутствует.
   Serginio1
 
372 - 03.10.16 - 22:45
(371) Там синтаксиси именно под SQL, но сделан для того, что бы использовать intellisense.
 B код под коллекции так же работает и с Таблицами SQL

http://catalog.mista.ru/public/402433/

>> Я бы не сказал. Ни SQL, ни функциональный стиль, куча дополнительных ключевых слов и с ними правил синтаксиса, борьба с типизацией.

Дело привычки, а автодополнение сокращает время написания и количество синтаксических ошибок.

  Лень вчитываться, а каков смысл твоего алгоритма?
   Loky9
 
373 - 03.10.16 - 23:21
(372) "Лень вчитываться, а каков смысл твоего алгоритма?"
Это всё ещё алгоритм Masquerade .
Он берёт самую короткую строку из набора и генерирует все возможные её подстроки. Из полученного набора подстрок отбирает входящие во все строки, а из входящих самую длинную. В итоге получаем самую длинную общую подстроку, о чем спрашивали в Быстрый алгоритм наибольших общих подстрок .
Не самый оптимальный алгоритм даже для ложащихся на логику РБД, но он таки с БД работать может.
   Garykom
 
374 - 03.10.16 - 23:59
(373) Интересный алгоритм задачка приводится на sql к куче like'ов
И если слегка допилить то можно реализовать "группировку" по общим подстрокам.
   Serginio1
 
375 - 04.10.16 - 00:31
(373) Спасибо. Теперь понятно.
А что касается формирования подстрок, то там и без Linq можно обойтись. Опустим.
  
Сравним Linq

foreach (var variant in all_variations.OrderByDescending(x => x.result.Length))
            {
                if (string_array.Select(word => word.IndexOf(variant.result) > -1 ? 1 : 0).Sum() == string_array.Count())
                {
                    max_substring = variant.result;
                    break;
                }
            }
 и Питон

_max_substring = [(len(variant), variant, variant in word, word)
                  for variant in all_variations
                  for word in string_array]
max_substring = max((gkey
                     for gkey, grp in
                     groupby(sorted(filter(lambda x: x[2], _max_substring),
                                    key=lambda x: x[1]),
                             key=lambda x: x[1])
                     if len(tuple(grp)) == len(string_array)),
                    key=len)
   Serginio1
 
376 - 04.10.16 - 01:20
Или
if (string_array.Select(word => word.IndexOf(variant.result) > -1 ? 1 : 0).Sum() == string_array.Count())
                
Можно переписать

if (string_array.Count(word => word.IndexOf(variant.result) > -1 ) == string_array.Count())
                
   Loky9
 
377 - 04.10.16 - 08:18
(375) "Сравним Linq
и Питон"
Ты сравниваешь различные конструкции. Приведённой тобой линковой соответствует

for variant in sorted(all_variations, key=len, reverse=True):
    if sum(variant in word for word in string_array) = len(string_array):
        max_substring = variant
        break
   Serginio1
 
378 - 04.10.16 - 09:47
Ну давай сравним

if sum(variant in word for word in string_array) = len(string_array):

и

if (string_array.Count(слово=> слово.IndexOf(variant) > -1 ) == string_array.Count())
   Serginio1
 
379 - 04.10.16 - 09:51
По сути это сокращенная Sql инсnруция

if (string_array.Where(слово=> слово.IndexOf(variant) > -1 ).Count() == string_array.Count())
   Loky9
 
380 - 05.10.16 - 10:41
(378) Хочешь сказать линк тут понятнее? Или короче?
   Serginio1
 
381 - 05.10.16 - 10:47
(380) Понятнее. Мало того эта же конструкция прекрасно ложится на SQL
   Loky9
 
382 - 05.10.16 - 10:51
(381) Одна конструкция ложится на другую, но на SQL ложатся не обе? ) Так бывает? Там ещё и кириллицей тоже можно.
   Serginio1
 
383 - 05.10.16 - 11:03
Вернее будет правильнее

if (string_array.Count(слово=> слово.Contains(variant) > -1 ) == string_array.Count())

 А, что Unicode в SQL отменили?

Но  IndexOf работает, прорсто Contains короче
 
http://stackoverflow.com/questions/835790/how-to-do-sql-like-in-linq
   Serginio1
 
384 - 05.10.16 - 11:04
Тьфу Копи пасте
if (string_array.Count(слово=> слово.Contains(variant)) == string_array.Count())
   Serginio1
 
385 - 05.10.16 - 11:06
А внутри SQL кстати не будет никакой Киррилицы.
Почитай для интереса

Code First и Linq to EF на примере 1С версии 7.7 и 8.3 часть I
http://catalog.mista.ru/public/393228/
Продолжение здесь http://catalog.mista.ru/public/402038/

Здесь лежит практика использования http://catalog.mista.ru/public/402433/
  1  2  3  4

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует