Minimal DAL and POCO mapping — Максимальный минимум с Fluent ADO .NET

На этот раз мы подойдем к мэппингу POCO объектов несколько с другой стороны. Бывают ситуации, когда вы не должны использовать ORM по тем или иным причинам, например — пожелание заказчика или какие то другие факторы (например, разработка для мобильных устройств).


Что делать в этом случае? Остается один лишь ADO .NET с нашими любимыми DbCommand и DbConnection.

А вот и есть выход! Легковесная библиотека, позволяющая использовать некоторые преимущества ORM мэппинга без использования непосредственно ORM.

Имя ей — Fluent Ado.NET. Знакомьтесь!

Официальная страничка этого чуда на Codeplex: fluentado.codeplex.com

Исходный код можно взять здесь через SVN: FluentAdo.svn.codeplex.com/svn

Компилим скачанные исходники. Если при компиляции возникнут ошибки — советую удалть из солюшена ссылки на проекты тестов и сделать ребилд снова.

Что мы имеем внутри солюшена? Четыре проекта:

* FluentAdo.Generic

* FluentAdo.Oledb

* FluentAdo.Oracle

* FluentAdo.SQLite

Мне по нраву пришелся первый 🙂

По большому счету в исходниках написаны шаблоны, которые вы без труда сможете продублировать в своем основном проекте. Однако есть возможность использовать ссылку готовую библиотеку, подключив к проекту. Ниже мы рассмотрим второй вариант.

Весь синтаксис SQL будет отныне находиться под вашим бдительным взором, вы не должны пропустить ни единого поля. Чаще всего вы будете иметь дело с классом FluentCommand<>, который выполняет SQL запрос и производит мэппинг результатов. Команде нужно будет указать явно соединение примерно так:

Классы из DAL останутся теми же (POCO):

А чтобы осуществить выборку из базы (конечно, база должна быть создана), нужно написать следующее:

Здесь мы опустили GetSqlConnection, потому что он это к делу не относится 😉

Есть еще много над чем подумать, например, каскадная загрузка таблиц (Product <-> Order), как мы делали это при использовании Fluent NHibernate.

Но в общем и целом технология очень удобна, и, если вы не хотите использовать ничего тяжеловесного, а наоборот, хотите получить полный контроль над Sql-командами, выполнением запросов и тп., то FluentAdo .NET — для вас.


Похожие записи:

Оставить комментарий

Ваш e-mail не будет опубликован. Обязательные поля отмечены *