Pull to refresh
14
0
Андрей Кудашкин @neyroneyro

.NET Senior Developer

Send message
Всмысле, метода расширения для IQueryable для генерации Delete запроса.
Спасибо за статью.
Задумался, как написать поддержку такого метода расширения, как например
db.Goods.DeleteAsync(x => x.Price > 2000).
Под картинкой в главе «Любовь и ненависть к GUI» у Вас опечатка «AWS пЕРдоставляет множество сервисов »
Работает. В статье подправьте, пожалуйста, ссылку.
По ссылке asp.net/free-course открывается страница с грустным содержимым:

«The page you are looking for is not available…
If you typed in the URL yourself, please double-check the spelling.
If you got here from a link within our site, please Contact Us.»
Было бы неплохо, если бы вы положили исходники на гитхаб)
Простите за оффтоп, но вступление повеселило!
Превью-версия свободной библиотеки Foundation Framework.
— на сайте написано, что «Раздел находится в разработке, но исходные коды с примерами стабильной превью-версии Foundation Framework можно скачать уже сейчас.», ссылка ведет на OneDrive, который, в свою очередь, сообщает, что «Man Make не предоставляет совместный доступ к чему-либо».

И еще не очень понятно, почему в статье так настойчиво предлагается приобрести исходные коды редактора Poet. Хотелось бы увидеть обзорную статью о данном творении.
Насчет образования не берусь судить, но мне не совсем понятен следующий момент — практически все эти вещи встречаются в фильмах, в книгах, да и в интернете полно постов с фотографиями. Мое поколение не застало патефоны и примусы, но мы знали об их назначении даже будучи первоклассниками…
Да, при помощи метода AddEnumerableParam. Наименование метода, возможно, я выбрал не самое правильное.
Спасибо большое.
В принципе, возможность работы без хранимых процедур появляется, если добавить в класс DataManager следующий код:
public DataManager Sql(string cmdText)
{
  this.command = this.connection.CreateCommand();
  this.command.CommandText = cmdText;
  this.command.CommandType = CommandType.Text;
  this.cmdHashCode = cmdText.GetHashCode();
  return this;
}

Я не стал вносить его в код класса изначально, потому что сам использую только хранимые процедуры, а так же меня смущает следующая тонкость:

Если посмотреть на код маппера, Вы увидите, что хэшкод текста команды весьма важен — он используется для определения (при повторном обращении), необходимо ли снова генерировать IL, инициализирующий экземляр класса результатами работы запроса. Если для хранимой процедуры можно согласиться, что процедуры с разными именами по разному инициализируют поля объекта, то для текста SQL запроса, основываясь лишь на его хэш, этого не определить. То есть для каждого запроса, даже если они выбирают одни и те же столбцы, но различаются телом, будет генерироваться свой IL код. Еще раз повторюсь, генерация будет производится единожды для данного запроса и мэппируемого ему типа.

По второму пункту — так точно, IL-генерация позволяет повысить производительность. Конечно же, там нет никаких проверок, потому приходится быть очень внимательным при описании модели и процедур.

Information

Rating
Does not participate
Location
Санкт-Петербург, Санкт-Петербург и область, Россия
Date of birth
Registered
Activity