Комментарии 4
Все выглядит интересным. Смутила только альтернатива EF. EF тоже умеет merge и прочие bulk, и также она умеет update и delete без материализации по произвольному запросу, в т.ч. содержащему join'ы.
Если я правильно понял описание доклада, то Алексей основные преимущества LINQ to DB видит при запросах на получение данных, и этому посвятил предыдущий доклад. А в случае с операциями записи может действительно не быть каких-то суперпреимуществ, но если уж рассказал про чтение, то теперь надо и про запись)
На самом деле мерж есть в ef core по умолчанию. С 6й версии точно. Я тоже пользовал когда-то эти платные расширения, давно, пока они не стали бесполезными. Чтобы не быть голословным, но и не тратить много времени, вот ссылка на репу ef core, прямо на тест со сложным апдейтом, где видно генерируемый сиквел с MERGE'м внутри. И если полазить там по репе, или выкачать ее себе и поизучать, можно найти где это все генерируется. EF не дает прямо указать, что ему генерировать, но там где выгодно он всегда генерирует мержи. Там даже где-то в сорцах логику находил. Ну и для эстетов можно конечно кастомные интерцепторы, собственную реализацию, расширения и тд. Что собственно и делают ребята с этой linq to db, там же вроде как есть интеграция с ef, хотя выглядит она не очень живой )
Что до bulk copy, то это не совсем формальный термин с точки зрения сиквела. В EF тоже полно разных bulk'ов, можно полазить по тем же тестам, будет наглядно видно. Я бы с удовольствием поглядел на какие-нибудь адекватные бенчмарки для сравнения. Если чувакам удастся обойти ef, хотя бы на каких-то сравнимых задачах, то респект. Хотя обычно тягаться с обителью зла группы энтузиастов, и даже коммерчески замотивированных энтузиастов - не хватает. В каких-то отдельных нишевых, узких задачах, и то до поры до времени. Тема в общем интересная, но очень хочется понять, стоит ли заморачиваться с изучением очередного пакета расширений, со своим синтаксисом, багами и прочими заморочками, или ну его...
Что на DotNext 2024 расскажут о практиках .NET-разработки, архитектуре, «кишочках» .NET и не только