Главная страница Случайная страница Разделы сайта АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
💸 Как сделать бизнес проще, а карман толще?
Тот, кто работает в сфере услуг, знает — без ведения записи клиентов никуда. Мало того, что нужно видеть свое раписание, но и напоминать клиентам о визитах тоже.
Проблема в том, что средняя цена по рынку за такой сервис — 800 руб/мес или почти 15 000 руб за год. И это минимальный функционал.
Нашли самый бюджетный и оптимальный вариант: сервис VisitTime.⚡️ Для новых пользователей первый месяц бесплатно. А далее 290 руб/мес, это в 3 раза дешевле аналогов. За эту цену доступен весь функционал: напоминание о визитах, чаевые, предоплаты, общение с клиентами, переносы записей и так далее. ✅ Уйма гибких настроек, которые помогут вам зарабатывать больше и забыть про чувство «что-то мне нужно было сделать». Сомневаетесь? нажмите на текст, запустите чат-бота и убедитесь во всем сами! Связь один к одному
Для связи один к одному возьмем объекты «Студент» и «Зачетная книжка» - один студент может иметь только одну зачетную книжку. Для начала создадим классы студента и зачетной книжки:
namespace Fluent.Domain { //Домен студента public class Student { public virtual long Id { get; set; }
public virtual string FirstName { get; set; }
public virtual string LastName { get; set; }
public virtual char Sex { get; set; }
public virtual int Year { get; set; }
//Ссылка на зачетную книжку public virtual RecordBook RecordBook { get; set; }
} }
namespace Fluent.Domain { //Домен зачетной книжки public class RecordBook { public virtual long Id { get; set; }
public virtual string Number { get; set; }
//Ссылка на студента public virtual Student Student { get; set; } } }
Теперь необходимо создать классы отображения (map-классы):
namespace Fluent.Mappings { //Класс отображения зачетной книжки public class RecordBookMap: ClassMap< RecordBook> { public RecordBookMap() { //Указание имени таблицы для зачетной книжки Table(" RecordBooks"); //Отображение идентификатора на колонку таблицы Id(x => x.Id).GeneratedBy.Native(); //Отображение обычного поля на колонку таблицы Map(x => x.Number); //Ссылка на студента References(x => x.Student).Column(" StudentId").Cascade.All(); } } }
namespace Fluent.Mappings { //Класс отображения студента public class StudentMap: ClassMap< Student> { public StudentMap() { //Указание имени таблицы для студента Table(" Students"); Id(x => x.Id).GeneratedBy.Native(); Map(x => x.FirstName); Map(x => x.LastName); Map(x => x.Sex); Map(x => x.Year); //Связь один к одному HasOne(x => x.RecordBook).ForeignKey(" StudentId").Cascade.All(); } } }
Как видно из примера, каждый класс отображения содержит конструкцию для указания имени таблицы в базе данных (Table), конструкцию для отображения ключевого поля на таблицу базы данных (Id), конструкции для отображения информационных полей на таблицу базы данных (Map), конструкции для связывания объектов. В данном примере, для того чтобы связать объекты «Студент» и «Зачетная книжка» связью один к одному в классе студента необходима ссылка на объект «Зачетная книжка»:
public virtual RecordBook RecordBook { get; set; }
В классе зачетной книжки для того, чтобы с объекта зачетной книжки можно было получить доступ к студенту, в классе зачетной книжки необходима ссылка на объект «Студент»:
public virtual Student Student { get; set; }
В классах отображения тоже должны быть соответствующие поля. Со стороны студента:
HasOne(x => x.RecordBook).ForeignKey(" StudentId").Cascade.All();
Со стороны зачетной книжки должно быть поле:
References(x => x.Student).Column(" StudentId").Cascade.All();
В соответствии с классами отображения в базе данных автоматически создаются таблицы, изображенные на рисунке 4.1 и 4.2. Рисунок 4.1 – Таблица зачетной книжки Рисунок 4.2 – Таблица студента Рассмотрим теперь связь один ко многим.
|