Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

ORMapper: NHibernate 11.12.2010 Henning Eiben

Ähnliche Präsentationen


Präsentation zum Thema: "ORMapper: NHibernate 11.12.2010 Henning Eiben"—  Präsentation transkript:

1 ORMapper: NHibernate 11.12.2010 Henning Eiben eiben@busitec.de

2 Die meisten Anwendungen drehen sich um Daten Klassischer Datenbankzugriff – ConnectionString – SQL oder Stored Procedures – ADO.Net DataSet, Command-Objekte, … 11.12.2010ORMapper: NHibernate2

3 ORM Anwendungen drehen sich Geschäftsobjekte nicht um Tabellen ORM – Konvertieren von Tabellen zu Objekten – Weniger Code – Abstraktion 11.12.2010ORMapper: NHibernate3

4 Funktionsweise Datenbank – MS-SQL, SQLLite, Oracle, MySQL, … Konfiguration – XML, FluentNHibernate (API) Geschäftsobjekte – Poco 11.12.2010ORMapper: NHibernate4

5 11.12.2010ORMapper: NHibernate5 Demo

6 Vorteile Einheitliches Paradigma für Datenzugriffe Keine wiederkehrenden Arbeiten Skalierbarkeit, Integrität, Abstraktion 11.12.2010ORMapper: NHibernate6

7 XML-Konfirugation 1/2 NHibernate.Driver.SqlClientDriver Server=(local);initial catalog=NorthWind;Integrated Security=SSPI 10 true NHibernate.Dialect.MsSql2008Dialect true 60 true 1, false 0, yes 'Y', no 'N' NHibernate.ByteCode.Castle.ProxyFactoryFactory, NHibernate.ByteCode.Castle 11.12.2010ORMapper: NHibernate7

8 XML-Konfiguration 2/2 <hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" assembly="NHibernate3" namespace="NHibernate3.Entities" default-lazy="true" default-access="property"> 11.12.2010ORMapper: NHibernate8

9 var configuration = new Configuration(); configuration.Configure(); configuration.AddAssembly(typeof (Customer).Assembly); _sessionFactory = configuration.BuildSessionFactory(); using (var session = _sessionFactory.OpenSession()) using (var tx = session.BeginTransaction()) { var customers = from mycustopmer in session.Query () where mycustopmer.Id == "ALFKI" select mycustopmer; customerList.DataSource = customers; customerList.DataBind(); tx.Commit(); } 11.12.2010ORMapper: NHibernate9

10 Fluent Konfiguration 1/2 var fluentConfiguration = Fluently.Configure().Database(MsSqlConfiguration.MsSql2008.ConnectionString(c => c.Database("Northwind").Server("localhost").TrustedConnection() ).ShowSql() ).Mappings(m => m.FluentMappings.AddFromAssemblyOf ()); 11.12.2010ORMapper: NHibernate10

11 Fluent Konfiguration 2/2 public class CustomerMapping : ClassMap { /// /// Initializes a new instance of the class. /// /// Initializes a new OR-Mapping. public CustomerMapping() { Table("Customers"); Id(customer => customer.Id).Column("CustomerID").GeneratedBy.Assigned(); Map(c=>c.Name).Column("CompanyName"); } 11.12.2010ORMapper: NHibernate11

12 Features Abfragen – HQL – Criteria API – LINQ Transaktionen … 11.12.2010ORMapper: NHibernate12

13 11.12.2010ORMapper: NHibernate13 Demo

14 Queqies: LINQ var customers = from mycustomer in session.Query () where mycustomer.Id == "ALFKI" select mycustomer; 11.12.2010ORMapper: NHibernate14

15 Queries: HQL var customers = session.CreateQuery("from Customer where Id='ALFKI'").List (); 11.12.2010ORMapper: NHibernate15

16 Queries: Criteria API var customers = session.CreateCriteria ().Add(Expression.Eq("Id", "ALFKI")).List (); 11.12.2010ORMapper: NHibernate16

17 Verweise http://nhforge.org http://fluentnhibernate.org 11.12.2010ORMapper: NHibernate17

18 Danke Henning Eiben eMail/MSN: eiben@busitec.deeiben@busitec.de ICQ: #3 64 70 70 11.12.2010ORMapper: NHibernate18


Herunterladen ppt "ORMapper: NHibernate 11.12.2010 Henning Eiben"

Ähnliche Präsentationen


Google-Anzeigen