Подскажите с чего начать? Какие-нибудь простые обучающие примеры — чтение данных, работа с хранимыми процедурами(триггерами). Глубины пока не нужны.
С С# в целом знаком, запросы к БД тоже составлял.
Просто не хочется начать с какого-нибудь "левого способа работы" и потом к нему привыкнуть.
Здравствуйте, alex1010, Вы писали:
A>Подскажите с чего начать? Какие-нибудь простые обучающие примеры — чтение данных, работа с хранимыми процедурами(триггерами). Глубины пока не нужны.
Здравствуйте, alex1010, Вы писали:
A>Подскажите с чего начать? Какие-нибудь простые обучающие примеры — чтение данных, работа с хранимыми процедурами(триггерами). Глубины пока не нужны. A>С С# в целом знаком, запросы к БД тоже составлял. A>Просто не хочется начать с какого-нибудь "левого способа работы" и потом к нему привыкнуть.
Почти все внутренние API баз данных строятся на таких понятиях как "соединение" (connection), "курсор", "набор строк" (rowset, dataset), "команда" (statement) и т.д. Соответственно, эти абстракции в том или ином виде фигурируют в API работы с БД многих языков (ODBC, JDBC, и т.д.). Для .NET таким базовым API является ADO.NET.
В нем присутствуют такие, например, классы:
DbConnection — управляет (сетевым) соединением с БД
DbCommand — представляет SQL-команду, посылаемую в БД
DbDataReader — курсор для итерации по набору данных, получаемому из БД
Есть и другие классы для расширенных возможностей.
И уже поверх этого простого API строятся ОРМ, такие как EntityFramework, NHibernate, Dapper. Они бывают разной степени сложности и представляют разные дополнительные абстракции. Но чтобы эффективно работать с ними, необходимо изучить нижележащий слой, в данном случае, ADO.NET.
Для изучения лучше выбирать такие СУБД и драйверы к ним, которые работают без дополнительных танцев с бубном. В случае с .NET/С#, это, несомненно, MS SQL Server в разных редакциях, я бы рекомендовал Express версию, как наиболее приближённую к "боевой". Также большинство примеров и статей посвящены работе именно с ним.
Потом можно перейти к работе со свободными СУБД или теми, которые требуются по работе.
_> DbConnection — управляет (сетевым) соединением с БД _> DbCommand — представляет SQL-команду, посылаемую в БД _> DbDataReader — курсор для итерации по набору данных, получаемому из БД _>
+1
А с DataSet лучше не связываться.
Здравствуйте, alex1010, Вы писали:
A>О Dapper даже не слышал, это похоже что-то новое-модное. Точно пока не мой выбор.
Dapper — это micro object mapper, создан авторами Stack Overflow. Это очень тонкая надстройка над стандартными классами для доступа к данным; облегчает жизнь, но не скрывает нижележащий уровень. В этом смысле лучше, чем взрослые ORM.
_>> DbConnection — управляет (сетевым) соединением с БД _>> DbCommand — представляет SQL-команду, посылаемую в БД _>> DbDataReader — курсор для итерации по набору данных, получаемому из БД _>>
Y>+1 Y>А с DataSet лучше не связываться.
Здравствуйте, Ведмедь, Вы писали:
В>За API, в котором есть DataSet надо отрубать руки без права переписки. Или WinForms приложение напрямую лезет в базу?
Да, клиент-сервер. Очень удобно прикручивается к гриду.
Здравствуйте, Qbit86, Вы писали:
Q>Здравствуйте, alex1010, Вы писали:
A>>О Dapper даже не слышал, это похоже что-то новое-модное. Точно пока не мой выбор.
Q>Dapper — это micro object mapper, создан авторами Stack Overflow. Это очень тонкая надстройка над стандартными классами для доступа к данным; облегчает жизнь, но не скрывает нижележащий уровень. В этом смысле лучше, чем взрослые ORM.
Лучше все же linq2db — очень тонкая ORM и быстрее даппера
Здравствуйте, alex1010, Вы писали:
A>Подскажите с чего начать? Какие-нибудь простые обучающие примеры — чтение данных, работа с хранимыми процедурами(триггерами). Глубины пока не нужны.
EF