Deutsch

Страсти по делегатам

1849  1 2 3 4 все
alex445 коренной житель27.03.24 06:17
NEW 27.03.24 06:17 
в ответ Срыв покровов 26.03.24 23:21

Я-то думал, ты в ЕФ шаришь
А ты теоретик.

Я в последнее время с ним давно не работал. Так, мелочь. В основном приходится со старым самописным дерьмом разбираться в теме общения с БД. Зато не всякое старьё APS.NET MVC использую, как некоторые, а новомодный Blazor. ))

#41 
Срыв покровов патриот27.03.24 07:17
NEW 27.03.24 07:17 
в ответ alex445 27.03.24 06:17
Я в последнее время с ним давно не работал

мы ж тут не на собеседовании, можешь так и сказать, что написал хеллоуворлд на ЕФ и полтора курса прошел))

#42 
Срыв покровов патриот27.03.24 08:39
NEW 27.03.24 08:39 
в ответ AlexNek 26.03.24 23:36

Вариант с == false генерерует в оракле вот такой запрос
и он гораздо медленнеее

SELECT "a"."ArtistId", "a"."Name"
FROM "Artist" AS "a"
WHERE 0 = CASE WHEN EXISTS (
    SELECT 1
    FROM "Album" AS "a0"
    WHERE "a0"."ArtistId" = "a"."ArtistId") 
THEN 1 ELSE o END
#43 
alex445 коренной житель27.03.24 11:06
NEW 27.03.24 11:06 
в ответ Срыв покровов 27.03.24 07:17

Не, почему, когда-то писал и code first, но теперь снова букварь надо читать, чтобы вспомнить, что там и как. Так-то подключиться к БД через контекст и что-то там позапрашивать могу - много ума не надо.

#44 
Срыв покровов патриот27.03.24 21:34
NEW 27.03.24 21:34 
в ответ alex445 27.03.24 11:06

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

#45 
alex445 коренной житель27.03.24 21:49
NEW 27.03.24 21:49 
в ответ Срыв покровов 27.03.24 21:34, Последний раз изменено 27.03.24 22:08 (alex445)

На работе ценится не зазубривание букварей, а умение решать неожиданно всплывающие проблемы типа таких, когда не понимаешь, почему и откуда. Вон, народ по 15 и более лет всё понять не может, почему им Студия не называет конкретную причину ошибки, которая может остоять от декларированной на несколько шагов.

#46 
AlexNek патриот27.03.24 21:54
AlexNek
NEW 27.03.24 21:54 
в ответ Срыв покровов 27.03.24 08:39

Странно, жалко Оракле снёс, интересно что дуреет.

#47 
Срыв покровов патриот27.03.24 22:20
NEW 27.03.24 22:20 
в ответ AlexNek 27.03.24 21:54

вангую, что Oracle.ManagedDataAccess.EntityFramework.dll

#48 
Срыв покровов патриот27.03.24 22:24
27.03.24 22:24 
в ответ alex445 27.03.24 21:49
На работе ценится не зазубривание букварей

Никто этого и не требует

Но понимать, сколько и в какой момент выполнится запрос в БД это гораздо важнее экономии 40% кода посредством использования новых фич.
а то напишешь, оно даже компилируется, на тестовой системе летает, а потом в проде умирает.
смотришь, а у ребят джойны в оперативной памяти происходят.

#49 
AlexNek патриот27.03.24 22:33
AlexNek
NEW 27.03.24 22:33 
в ответ Срыв покровов 27.03.24 22:20
что Oracle.ManagedDataAccess.EntityFramework.dll

всё может быть, что Oracle.* смущ


Oracle.ManagedDataAccess.Core

#50 
alex445 коренной житель27.03.24 22:53
NEW 27.03.24 22:53 
в ответ Срыв покровов 27.03.24 22:24

На работе ценится не зазубривание букварей

Никто этого и не требует

Но понимать, сколько и в какой момент выполнится запрос в БД это гораздо важнее экономии 40% кода посредством использования новых фич.
а то напишешь, оно даже компилируется, на тестовой системе летает, а потом в проде умирает.
смотришь, а у ребят джойны в оперативной памяти происходят.

Если ребята с этим EF не работали, или мало работали - это нормально. Показать им, как надо, объяснить - в чём проблема?

#51 
Срыв покровов патриот28.03.24 06:54
NEW 28.03.24 06:54 
в ответ AlexNek 27.03.24 22:33
Oracle.ManagedDataAccess.Core

там то же самое

Правда не последняя версия

#52 
alex445 коренной житель28.03.24 15:10
NEW 28.03.24 15:10 
в ответ Срыв покровов 27.03.24 22:24
это гораздо важнее экономии 40% кода посредством использования новых фич.

Это ещё и 40% понимания добавляет. Когда у тебя весь класс на одном экране, а не на пяти, потому что чел решил везде писать типа такого


private Obj _obj;
public Obj Obj
{
    get
    {
        if(_obj == null)
        {
            _obj = new Obj();
        }
        return _obj;
    }
}


вместо такого


private Obj _obj;
public Obj Obj => _obj ??= new ();
#53 
alex445 коренной житель28.03.24 15:28
NEW 28.03.24 15:28 
в ответ alex445 28.03.24 15:10, Последний раз изменено 28.03.24 15:30 (alex445)

А вообще, есть у кого-нибудь такие правила по оформлению кода, что типа в этом проекте запрещено использовать инициализаторы - нужно обычный конструктор и потом каждый раз созданному объекту свойства присваивать? Или свичи новые нельзя - только старые (которые statement, а не expression). Или нельзя использовать часть операторов - например ??= и прочие null-coalescing и null-propagation? Или нельзя bodies expressions (со стрелочками)? Нельзя лямбды - метод отдельный специально определяй. При этом язык и версия фреймворка позволяют. Т.е. нужно себя заставить писать где-то на уровне C# 2, но на версии C# 12 (.NET 8).

#54 
Срыв покровов патриот28.03.24 17:20
NEW 28.03.24 17:20 
в ответ alex445 28.03.24 15:10

твоя простыня это же эквивалент ?

public Obj Obj = new Obj() {get;}




#55 
Срыв покровов патриот28.03.24 17:22
NEW 28.03.24 17:22 
в ответ alex445 28.03.24 15:28

у нас тут на днях прислали coding standards

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

#56 
alex445 коренной житель28.03.24 17:54
NEW 28.03.24 17:54 
в ответ Срыв покровов 28.03.24 17:20

твоя простыня это же эквивалент ?

public Obj Obj = new Obj() {get;}

Не совсем. У вас нет модной ленивой инициализации.

#57 
alex445 коренной житель28.03.24 17:57
NEW 28.03.24 17:57 
в ответ Срыв покровов 28.03.24 17:22, Последний раз изменено 28.03.24 17:58 (alex445)
у нас тут на днях прислали coding standards
В принципе все норм, но какой-то старпер запретил использовать + для конкатенации строк. только StringBuilder. Пришлось объяснить, что оно не всегда нужно.

Это тоже запрещено?

А это?

#58 
Срыв покровов патриот28.03.24 18:08
NEW 28.03.24 18:08 
в ответ alex445 28.03.24 17:54, Последний раз изменено 28.03.24 18:09 (Срыв покровов)
Не совсем. У вас нет модной ленивой инициализации.

неприятность эту мы переживём.

#59 
Срыв покровов патриот28.03.24 18:14
NEW 28.03.24 18:14 
в ответ alex445 28.03.24 15:10
public Obj Obj => _obj ??= new ();

Мало того, что при чтении этого ломается мозг, так тут еще и существует опасность забыть знак равно и получать каждый раз новый объект.

#60 
1 2 3 4 все