
Илья
16.02.2017
08:30:08
var sqlQuery = "INSERT INTO Users (Name, Age) VALUES(@Name, @Age); SELECT CAST(SCOPE_IDENTITY() as int)";
int? userId = db.Query<int>(sqlQuery, user).FirstOrDefault();
user.Id = userId;
Он видимо сам подставляет значения
Надо только названия полей указать

Artem
16.02.2017
08:31:44
Естественно. Он делает мапинг между переменными запроса и полями объекта

Google

Илья
16.02.2017
08:33:40
Ну, так мне делать через ; инсерт или как ты написал? Т.е. для каждого объекта по строке инсерта или нет?

Artem
16.02.2017
08:34:06
что ты хочешь сделать?

Илья
16.02.2017
08:34:24
вставить коллекцию объектов
в одну таблицу

Руслан
16.02.2017
08:34:54
инсерты в EXELE напиши через "склеять"

Илья
16.02.2017
08:35:05
Я циклом
формирую строку запроса

Artem
16.02.2017
08:35:49
var sql = "INSERT INTO Table (Id, V) VALUES (@Id, @V)"
db.Execute(sql, collection)

Леонид
16.02.2017
08:36:28

Илья
16.02.2017
08:36:28
А там в примере юзается метод Query... Чем они отличаются?

Леонид
16.02.2017
08:36:33
Что ты пишешь
Это

Alexander
16.02.2017
08:37:13
ого, лайфхак же, как сделать тестовое задание, и че я раньше не догадался

Google

Леонид
16.02.2017
08:37:13
Почему тут не даппером?

Илья
16.02.2017
08:37:22
А понял execute возвращает количество строк выполненных

Artem
16.02.2017
08:37:24
Query возвращает результат-объект, Execute только число строк, которые были вставлены/изменены

Alexander
16.02.2017
08:38:42
теперь понятно, почему на собеседованиях дают ручку с листочком и просят написать сортировки, какие знаешь и пр.

Илья
16.02.2017
08:39:00
А мне не надо для этого писать INSERT INTO Table (Id, V) VALUES (@Id, @V), VALUES (@Id, @V), VALUES (@Id, @V)
?

Artem
16.02.2017
08:39:10
нет

Илья
16.02.2017
08:39:13
Чтобы вставить коллекцию

Artem
16.02.2017
08:39:15
даппер сам сообразит

Илья
16.02.2017
08:39:32
ок
круто)

Artem
16.02.2017
08:40:00
Dapper - это просто обертка над ADO.Net

Леонид
16.02.2017
08:40:37
Даппер для богов

Илья
16.02.2017
08:41:17
Ох, теперь с восторгом вспоминаю времена когда я юзал EF. Блин. Там никакого SQL. Знай работай себе с таблицей как с обычной коллекцией объектов...
Насколько это удобнее(

Artem
16.02.2017
08:42:26
Даппер для богов
ага. я посмотрю, как ты будешь делать какой-нить CROSS APPLY через EF

Леонид
16.02.2017
08:42:46
Зачем через еф?

Artem
16.02.2017
08:42:55
или хоть какую-нибудь сложную выборку

Илья
16.02.2017
08:43:00

Artem
16.02.2017
08:43:02
например с HAVING COUNT

Google

Илья
16.02.2017
08:43:07
ниче не понял)))

Ilya
16.02.2017
08:43:12
https://drive.google.com/uc?id=0B1JqG9-isoYPNXR1a19qQnlFUFU

Илья
16.02.2017
08:43:20
я не знаток sql. Только базовые знания запросов

Леонид
16.02.2017
08:43:29
Найс SQL не осилили

Илья
16.02.2017
08:44:45
А зачем?))) Почти нигде не юзают SQL в чистом виде. Везде ORM.

Artem
16.02.2017
08:44:54

Илья
16.02.2017
08:45:03
Я кодил на PHP, Python (Django) - везде орм

Ilya
16.02.2017
08:45:18
два sql этому джуну

Artem
16.02.2017
08:45:27
если ничего сложней блога не делать, то да
orm хватит)

Илья
16.02.2017
08:46:21
Что такого сложного может быть где тебе не хватит орм? Орм точно также формирует SQL запросы. Просто формирует за тебя.
И формирует для каждой субд

Илья
16.02.2017
08:46:37
Сама
Удобно же

Artem
16.02.2017
08:46:44
я молчу про хинты

Илья
16.02.2017
08:47:30
Можно юзать ОРМ для простых запросов, а в сложных писать вручную sql. Она это проглотит.
Врятли сложных бывает слишком много

Artem
16.02.2017
08:48:53
Частенько встречается схема, когда используются EF+Dapper.
особенно в концепциях с CQRS

Google

Artem
16.02.2017
08:50:03
EF используют для доменной модели, Dapper для query моделей

anton
16.02.2017
08:50:51
кому загадку? что за 57? :)

Artem
16.02.2017
08:51:28

anton
16.02.2017
08:51:50

Axm
16.02.2017
08:58:03
может это эмулятор, который выводит служебную инфу. или какой-нибудь режим разработчика.

anton
16.02.2017
09:00:38
я ответа не знаю, если что.. сам мучаюсь пока в догадках

Dmitry
16.02.2017
09:05:53
/history@bestuserbot

Gid
16.02.2017
09:06:25
У тебя есть узкое место где 10000 юзеров каждую секунду делают инсерт

Admin
ERROR: S client not available

Gid
16.02.2017
09:06:36
Ормку заюзаешь?
Какой-нибудь энтити фреймворк)?())))?

Dmitry
16.02.2017
09:07:20

Gid
16.02.2017
09:07:45

Dmitry
16.02.2017
09:07:46

Сергей
16.02.2017
09:07:51
А в чем проблема орм тут?
У тебя есть узкое место где 10000 юзеров каждую секунду делают инсерт

Gid
16.02.2017
09:08:18

Dmitry
16.02.2017
09:08:21
Запрос херово сгенерит?

Сергей
16.02.2017
09:08:24
СКОРОСТИ ЧЕГО?
ИНСЕРТ ХЕРОВО СГЕНЕРИТ?

Google

Gid
16.02.2017
09:08:40

Сергей
16.02.2017
09:08:50
Когда инсертит?

Gid
16.02.2017
09:09:00

Ilya
16.02.2017
09:09:03
когда селектит например
инсерт-то он норм сегенрит

Сергей
16.02.2017
09:09:22
Вполне обычнй инсерт, что там не так?

Gid
16.02.2017
09:09:25
Это приеб не по сабжу

Сергей
16.02.2017
09:09:37
Когда жуткие джоины то ок, д

Ilya
16.02.2017
09:09:57
иногда саб селекты лютые

Gid
16.02.2017
09:10:17
А еще есть момент когда можно неправильно заюзать селект без лейзилоада

Сергей
16.02.2017
09:10:28
Ну это другой вопрос
Правильно / неправильно

Gid
16.02.2017
09:10:51
Это одно

Сергей
16.02.2017
09:11:03
Ты точно так же можешь что то сделать неправильно

Ilya
16.02.2017
09:11:06
базар не о том ваще? то что еф часто генерит не оптимальные запросы это, по моему, факт

Gid
16.02.2017
09:11:13
Когда ты написал 1 строчку в еф и думаешь что там лейзилоад это другое
В общем пхп разжижает мозги

Сергей
16.02.2017
09:11:35
Значит ты хреново знаешь еф, сорри, но инструменты надо знать
Эта группа больше не существует