Слайд 1 Слайд 2 Слайд 3 Слайд 4 Слайд 5 Слайд 6 Слайд 7 Слайд 8 Слайд 9 Слайд 10 Слайд 11 Слайд 12 Слайд 13 Слайд 14 Слайд 15 Слайд 16 Слайд 17 Слайд 18 Слайд 19 Слайд 20 Слайд 21 Слайд 22 Слайд 23 Слайд 24 Слайд 25 Слайд 26 Слайд 27 Слайд 28 Слайд 29 Слайд 30 Слайд 31 Слайд 32 Слайд 33 Слайд 34 Слайд 35 Слайд 36 Слайд 37 Слайд 38 Слайд 39 Слайд 40 Слайд 41 Слайд 42 Слайд 43 Слайд 44 Слайд 45 Слайд 46 Слайд 47 Слайд 48 Слайд 49 Слайд 50 Слайд 51 Слайд 52 Слайд 53 Слайд 54 Слайд 55 Слайд 56 Слайд 57 Слайд 58 Слайд 59 Слайд 60 Слайд 61 Слайд 62 Слайд 63 Слайд 64 Слайд 65 Слайд 66 Слайд 67 Слайд 68
1: Основные компоненты NHibernate
2: Конфигурация
3: Фабрика сессий Создается на основе объекта конфигурации Представляет собой абстракцию базы данных На каждую СУБД своя фабрика сессий Временные затраты на создание Генерирует сессии
4: Фабрика сессий. Основные методы Close () Evict (Type t, object id) EvictCollection (string roleName, object id) GetCurrentSession () OpenSession () OpenStatelessSession ()
5: Сессии Взаимодействие с базой данных Создание не является ресурсоемким Используется наиболее часто
6: Генерация скриптов на основе файлов маппинга Анализ файлов маппинга Генерация необходимых sql-скриптов
7: Id генераторы IDENTITY (sql server, mysql) SEQUENCE (oracle, postgresql) HILO SEQHILO
8: Маппинг Проекция сущностей на таблицы в базе данных Различные варианты маппинга Обязательные требования
9: Маппинг через xml-файлы Множество примеров в интернете Не нужно повторно перекомпилировать приложение
10: Пример маппинга через xml-файлы
11: Маппинг через атрибуты Не нужно создавать xml-файлы Легкий переход с xml-файлов
12: Пример маппинга через атрибуты
13: Маппинг с помощью кода Не нужно создавать xml-файлы Не требуются дополнительные библиотеки
14: Пример маппинга с помощью кода
15: Типы коллекций
16: Маппинг. Component
17: Связь один-к-одному. Сущности
18: Один-к-одному
19: Связь один-ко-многим. Сущности
20: Один-ко-многим
21: Многие-ко-многим. Сущности
22: Многие-ко-многим
23: Связь многие-ко-многим
24: Батчинг. Пример
25: Батчинг. Результат
26: Отложенная загрузка (lazy load)
27: Fetch
28: Кэширование
29: Состояния сущности
30: Методы экземпляра сессии
31: Транзакции
32: Flush
33: Запросы. Native SQL. Пример 1.
34: Запросы. Native SQL. Пример 2.
35: Запросы. Native SQL. Пример 3.
36: Запросы. Native SQL. Пример 4.
37: Запросы. Native SQL. Пример 5.
38: Запросы. Native SQL. Пример 6.
39: Запросы. HQL. Пример 1.
40: Запросы. HQL. Пример 2.
41: Запросы. HQL. Пример 3.
42: Запросы. HQL. Пример 4-1.
43: Запросы. HQL. Пример 4-2.
44: Запросы. HQL. Пример 5-1.
45: Запросы. HQL. Пример 5-2.
46: Запросы. HQL. Пример 5-3.
47: Запросы. HQL. Пример 6-1.
48: Запросы. HQL. Пример 6-2.
49: Запросы. HQL. Пример 7-1.
50: Запросы. HQL. Пример 7-2.
51: Запросы. LINQ to NH. Пример 1-1.
52: Запросы. LINQ to NH. Пример 1-2.
53: Запросы. LINQ to NH. Пример 2-1.
54: Запросы. LINQ to NH. Пример 2-2.
55: Запросы. LINQ to NH. Пример 3-1.
56: Запросы. LINQ to NH. Пример 3-2.
57: Запросы. LINQ to NH. Пример 4-1.
58: Запросы. LINQ to NH. Пример 4-2.
59: Запросы. LINQ to NH. Пример 5-1.
60: Запросы. LINQ to NH. Пример 5-2.
61: Запросы. LINQ to NH. Пример 6-1.
62: Запросы. LINQ to NH. Пример 6-2.
63: IEnumerable vs IQueryable.
64: IEnumerable vs IQueryable.
65: Материализация
66: Материализация
67: Проверка на Null
68: Проверка на Null