Size: a a a

BY Microsoft .NET User Group

2018 December 18

A

Anatoly in BY Microsoft .NET User Group
тег - вставляется в комментарий в теле запроса и нужен для:
1. визуального отличия запросов в профайлере/статистике сервера
2. в некоторых субд планы кешируются по тексту запроса, если у нас есть перекосы в распределении данных (например, заказы для Минска вс заказы по всей стране), мы можем это поюзать, чтбы для минска был один план, для барановичей - другой
источник

A

Anatoly in BY Microsoft .NET User Group
Roman Bukin
Только чтоб банальный update where/delete where в EF’е написать - надо насиловать ченж трекер
последний раз, когда я это делал сам, было WithNoTracking или как-то так
источник

RB

Roman Bukin in BY Microsoft .NET User Group
Anatoly
последний раз, когда я это делал сам, было WithNoTracking или как-то так
Не не, ты не понял. Он же не даёт такие запросы делать просто так.
источник

A

Anatoly in BY Microsoft .NET User Group
context.Database.ExecuteSqlCommand?
источник

RB

Roman Bukin in BY Microsoft .NET User Group
Типа создаёшь пустую DTO’шку сетаешь ей проперти (pkey), говоришь что она аттачед и потом делаешь ей ремув из DbSet’а. Тогда по SaveChanges сгенерится delete where. Ну либо как дурак делаешь сначала селект, потом delete.
источник

RB

Roman Bukin in BY Microsoft .NET User Group
Anatoly
context.Database.ExecuteSqlCommand?
Схема поменялась и досвиданья
источник

A

Anatoly in BY Microsoft .NET User Group
в общем, моя твоя не понимать. покажи пример на linq2db, pls
источник

RB

Roman Bukin in BY Microsoft .NET User Group
Anatoly
в общем, моя твоя не понимать. покажи пример на linq2db, pls
Ща покажу
источник

A

Anatoly in BY Microsoft .NET User Group
Roman Bukin
Схема поменялась и досвиданья
а с Linq2db не досвиданья?
источник

A

Anatoly in BY Microsoft .NET User Group
он в райтайме магией ExpressionTree свой перестроит?
источник

RB

Roman Bukin in BY Microsoft .NET User Group
Anatoly
он в райтайме магией ExpressionTree свой перестроит?
Нет конечно
источник

RB

Roman Bukin in BY Microsoft .NET User Group
Я говорю о том, что когда у тебя строка, если схема данных поменялась, то ты должен пройтись и везде запросики поправить. Какие именно запросы править, особенно на большом проекте ты узнаешь по упавшим интеграционным тестам. В случае когда у тебя Linq, если ты изменения в схеме бд отражаешь в объектной модели - тебе компилятор расскажет без всяких тестов где именно у тебя что-то отломалось (но необходимости тестов это не отменяет).
источник

RB

Roman Bukin in BY Microsoft .NET User Group
Linq2db позволяет писать вот так
var deletedRecordsCount = await _connection
    .GoogleApiSettings
    .DeleteAsync(x => x.Id == id, cancellationToken);
источник

RB

Roman Bukin in BY Microsoft .NET User Group
Ну я к тому что он по фичам построения запросов побольше EF'а может.
источник

A

Anatoly in BY Microsoft .NET User Group
Roman Bukin
Я говорю о том, что когда у тебя строка, если схема данных поменялась, то ты должен пройтись и везде запросики поправить. Какие именно запросы править, особенно на большом проекте ты узнаешь по упавшим интеграционным тестам. В случае когда у тебя Linq, если ты изменения в схеме бд отражаешь в объектной модели - тебе компилятор расскажет без всяких тестов где именно у тебя что-то отломалось (но необходимости тестов это не отменяет).
я это узнаю, только если я запущу какой-нибудь генератор моделей. у нас всё-таки пока нет Type Providers для C#.
а если я могу тулами обмазаться, то решарпер и райдер умеют парсить sql в строках и применять его к СУБД
источник

RB

Roman Bukin in BY Microsoft .NET User Group
Всякие merge, cte, bulk copy в том числе
источник

A

Anatoly in BY Microsoft .NET User Group
прикольно
источник

RB

Roman Bukin in BY Microsoft .NET User Group
Anatoly
я это узнаю, только если я запущу какой-нибудь генератор моделей. у нас всё-таки пока нет Type Providers для C#.
а если я могу тулами обмазаться, то решарпер и райдер умеют парсить sql в строках и применять его к СУБД
Дык у них есть генератор на T4
источник

RB

Roman Bukin in BY Microsoft .NET User Group
Кастомизируемый
источник

RB

Roman Bukin in BY Microsoft .NET User Group
bulk copy кстати умеет провайдеро-специфичный. Например, для постгреса он позволяет binary copy делать без боли.
источник