Содержание
- 2. Посилання та література Де скачати NHibernate? http://sourceforge.net/projects/nhibernate/ Література: Pierre Henri Kuaté, Tobin Harris, Christian Bauer, Gavin
- 3. Архітектура NHibernate
- 4. Створення класу предметної області namespace lab4.Domain{ class Cat{ public virtual long Id { get; set; }
- 5. Файл мапінгу класу предметної області namespace="lab4.Domain" assembly="lab4">
- 6. Конфігурація NHibernate NHibernate.Connection.DriverConnectionProvider NHibernate.Dialect.PostgreSQLDialect NHibernate.Driver.NpgsqlDriver Server=127.0.0.1;Port=5432;User Id=postgres;Password=1111;Database=animals; NHibernate.ByteCode.Spring.ProxyFactoryFactory, NHibernate.ByteCode.Spring create -->
- 7. Відкриття сесії static ISession openSession(){ ISessionFactory factory = null; ISession session = null; if (factory ==
- 8. Робота з сесією static void Main(string[] args){ ISession session = openSession(); ITransaction transaction = session.BeginTransaction(); session.SaveOrUpdate("Cats",
- 9. Зв’язок One-to-One (класи) Студент Залікова книжка class Student{ public virtual long StudentID { get; set; }
- 10. Зв’язок One-to-One (файли мапінгів) class="RecordBook, NHibernateOneToOne"/> Студент Залікова книжка 1 1
- 11. Зв’язок One-to-Many (IList) class Group{ public virtual long GroupID { get; set; } public virtual string
- 12. Зв’язок One-to-Many (ISet) class Group{ public virtual long GroupID { get; set; } public virtual string
- 13. Зв’язок One-to-Many (IDictionary) class Group{ public virtual long Id { get; set; } public virtual string
- 14. Fluent NHibernate Fluent Nhibernate – бібліотека, яка дозволяє описувати правила проектування об’єктів на реляційну базу даних
- 15. Зв’язок One-to-One (класи) public class Student : EntityBase{ public virtual string Name { get; set; }
- 16. Зв’язок One-to-One (класи мапінгу) public class StudentMap : ClassMap { public StudentMap(){ Table("Students"); Id(x => x.ID).GeneratedBy.Native();
- 17. Зв’язок One-to-Many (класи) public abstract class EntityBase{ public virtual long ID { get; set; } }
- 18. Зв’язок One-to-Many (класи мапінгу) public class GroupMap : ClassMap { public GroupMap(){ Table("Groups"); Id(x => x.ID).GeneratedBy.Native();
- 19. Зв’язок Many-to-Many (класи) public abstract class EntityBase{ public virtual long ID { get; set; } }
- 20. Зв’язок Many-to-Many (класи мапінгу) public class SubjectMap : ClassMap { public SubjectMap(){ Table("Subjects"); Id(x => x.ID).GeneratedBy.Native();
- 21. Створення сесії private static ISession openSession(){ ISessionFactory factory = null; ISession session = null; Assembly mappingsAssemly
- 22. Запити у NHibernate Запити Native SQL; Запити по критерію (Criteria queries); Запити по прикладу (Example queries);
- 23. Запити Native SQL private static IList getStudentsByGroup(ISession session, string groupName){ IList list = session.CreateSQLQuery( "SELECT Students.*
- 24. Запити по критерію ICriteria criteria1 = session.CreateCriteria(typeof(Student)) .Add(Expression.Eq("Contractor", false)) .SetMaxResults(5); List list = criteria1.List (); ICriteria
- 25. Запити по прикладу Student s = new Student(); s.Contractor = false; s.BirthYear = 1998; ICriteria criteria4
- 26. Запити з використанням HQL IQuery query = session.CreateQuery("from Student as stud where stud.Name = :Name"); query.SetAnsiString("Name",
- 27. Діаграма класів шаблону «Generic DAO»
- 28. Шаблон «Generic DAO» public interface IGenericDAO { void Save(T item); T ReadByID(long ID); List ReadAll(); void
- 30. Скачать презентацию