NlSql - ORM-библиотека с автогенерацией визуального слоя
NlSql – библиотека, которая позволит вам значительно сократить время разработки сайта или информационной системы. Достаточно лишь описать класс – NlSql автоматически создаст все остальное: таблицы в базе данных, формы ввода данных, графические таблицы с возможностями редактирования. Поддерживаются Windows- и Web-приложения.
Краткая экскурсия по возможностям библиотеки
Работа с базой данных
Работать с библиотекой очень просто. Описываем класс:
[NlSqlClass("Люди")]
publicclassPerson : NlSqlObject
{
privatestring _fio;
[NlSqlProperty("ФамилияИ.О.")]
publicstring Fio
{
get { return _fio; }
set { _fio = value; }
}
privateDateTime _birthDay;
[NlSqlProperty("Датарождения")]
publicDateTime BirthDay
{
get { return _birthDay; }
set { _birthDay = value; }
}
// Поддерживаются ссылки "один ко многим" на другие классы
privateCity _city;
[NlSqlProperty("Город")]
publicCity City
{
get { return _city; }
set { _city = value; }
}
// Поддерживаются ссылки "многое ко многим" на другие классы
Те свойства, которые необходимо отражать в базе данных и формах ввода, снабжаются дополнительными атрибутами (NlSqlProperty). Поддерживаются ссылки на другие классы, описанные таким же образом. Всю работу по представлению объектов в базе данных берет на себя NlSql.
Теперь можно создать объект этого класса и вызвать метод, создающий необходимые таблицы в базе данных:
Person ivan = newPerson();
ivan.CheckFieldsInSql(); // Создаем таблицы в базе данных
Таблица для класса Person и для классов City и Interest, на которые он ссылается, успешно созданы:
Обратите внимание, что также автоматически создана связующая таблица для связи типа «многое ко многим».
В таблицах созданы колонки в соответствии с свойствами класса:
Теперь можно заполнить объект и вставить его в базу данных:
ivan.Fio = "Иванов И.И.";
ivan.BirthDay = DateTime.Parse("30-10-1983");
ivan.InsertIntoSql();
После выполнения команды вставки объект записался в базу данных:
Создадим город и вставим его в базу данных:
City moscow = newCity();
moscow.Name = "Москва";
moscow.InsertIntoSql();
И теперь укажем, что созданный ранее человек (Иванов И.И.) проживает в Москве, а затем обновим запись о нем в базе данных:
ivan.City = moscow;
ivan.UpdateInSql();
Посмотрим на результат – появилась ссылка на строчку из таблицы City:
При дальнейшей работе можно также загружать объекты из базы данных:
ivan.Id = 1;
ivan.LoadFromSql();
И удалять их в базе:
ivan.DeleteInSql();
В базовом классе NlSqlObject существует метод GetList, который позволяет получить несколько объектов, добавив, при необходимости, фильтры:
// Выбрать людей, которые старше 5 лет и младше 18
List<Person> children = Person.GetList<Person>(newWhereAnd(
Зачастую требуется посмотреть объекты в виду общей таблицы. В библиотеке существует такая возможность, реализованная в класса NlSqlWinTable и NlSqlWebTable. Пример: