.


:




:

































 

 

 

 





. ..

 

 

.

 

.

 

 

______________ ..

() . -32

 

____________ . ..

()

 

. 2012.

充....3

腅..5

ⅅ..6

ą....12

.13

....14

XML......16

充..17

...18

充..19

....19

SQL .21

.....23

 

 

. . , . , , .

. , .

, , . . NHibernate.

NHibernate ORM- Microsoft.NET, :
1) -, (POCO). POCO = Plain old CLR objects, , , .
2) XML- . - , (, ) .

 

 

.

 

C Ļ . ORM (Object-Relational Mapping) Fluent NHIbernate .

 

 


 

, .

:

1. , ;

2. ; , ; , .

3. .

4. .

5. , , .

6. XML.

 

 


 

 

MySQL. , .

MySQL (). MySQL Oracle Corporation, Sun Microsystems, . GNU General Public License , .

# Microsoft Visual Studio 2010. ORM (Object-Relational Mapping). , # . .., , MySQL ORM , , , .

5 ,

, , 5 .

ORM Fluent NHibernate - NHibernate. Fluent NHibernate XML- NHibernate. XML (.hbm.xml), Fluent NHibernate , C#. , , . , XML . , , .. ..

 

Fluent NHibernate, NHibernate.dll, FluentNHibernate.Mapping, FluentNHibernate.Cfg, FluentNHibernate.Cfg.Db.

.

Fluent NHibernate, :

 

var config = Fluently.Configure()

.Database(MySQLConfiguration.Standard

.ConnectionString(x => x.Database(DataBase)

.Server(Host)

.Username(User)

.Password(Password)))

.Mappings(m => m.FluentMappings.AddFromAssemblyOf<DepartMap>())

.BuildConfiguration();

MySession = config.BuildSessionFactory();

 

. _Map.cs

 

Departament

 

:

public class Departament

{

public virtual int Id { get; protected set; }

public virtual string Name { get; set; }

public virtual IList<Personnel> Personnels { get; set; }

 

public Departament ()

{

Personnels = new List<Personnel>();

}

public virtual void AddPersonnel(Personnel personel)

{

personel.Departament = this;

Personnels.Add(personel);

}

}

 

:

public class DepartMap: ClassMap<Departament>

{

public DepartMap()

{

Id(x => x.Id).Not.Nullable();

Map(x => x.Name).Not.Nullable();

HasMany(x => x.Personnels)

.Inverse()

.KeyColumn("Departament_id")

.Cascade.SaveUpdate();

}

}

 

Diagnosis

 

:

public class Diagnosis

{

public virtual int Id { get; set; }//idDiagnosis

public virtual string Name { get; set; }

public virtual Departament Departament { get; set; }

public virtual Personnel Personnel { get; set; }

public virtual String Description { get; set; }

public virtual IList<Medication> Medications { get; set; }

 

public Diagnosis ()

{

Medications = new List<Medication>();

Description = "";

}

//

public virtual void AddMediacation (Medication med)

{

med.Diagnosis.Add(this);

Medications.Add(med);

}

}

 

:

 

public class DiagnosisMap: ClassMap<Diagnosis>

{

public DiagnosisMap()

{

Table("diagnosis");

Id(x => x.Id).Column("idDiagnosis").Not.Nullable();

Map(x => x.Name).Not.Nullable();

Map(x => x.Description);

HasManyToMany(x => x.Medications)

.Table("diagnosis_has_medications")

.ParentKeyColumn("idDiagnosis")

.ChildKeyColumn("idMedications");

References(x => x.Departament)

.Column("Departament_id")

.Cascade.SaveUpdate();

References(x => x.Personnel)

.Column("Personnel_id")

.Cascade.SaveUpdate();

}

}

 

Medication

 

:

 

public class Medication

{

public virtual int Id { get; set; }

public virtual string Name { get; set; }

public virtual int Numb_per_day { get; set; }

public virtual int Duration { get; set; }

public virtual decimal Price { get; set; }

public virtual string Description { get; set; }

public virtual IList<Diagnosis> Diagnosis { get; set; }

 

public Medication()

{

Diagnosis = new List<Diagnosis>();

Description = "";

}

//

public virtual void AddDiagnosis (Diagnosis diagnosis)

{

Diagnosis.Add(diagnosis);

diagnosis.Medications.Add(this);

}

}

 

:

 

public class MedicationMap: ClassMap<Medication>

{

public MedicationMap()

{

Table("medications");

Id(x => x.Id).Column("idMedications").Not.Nullable();

Map(x => x.Name).Not.Nullable();

Map(x => x.Numb_per_day);

Map(x => x.Duration);

Map(x => x.Price);

Map(x => x.Description);

HasManyToMany(x => x.Diagnosis)

.Table("diagnosis_has_medications")

.ParentKeyColumn("idMedications")

.ChildKeyColumn("idDiagnosis")

.Inverse();

}

}

 

Pacient

:

 

public class Pacient

{

public virtual int Id { get; set; }

public virtual string Name{ get; set; }

public virtual string Address{ get; set; }

public virtual DateTime Birthday { get; set; }

public virtual DateTime Data_arrival { get; set; }

public virtual DateTime Data_depart { get; set; }

public virtual Departament Departament { get; set; }

public virtual Diagnosis Diagnosis { get; set;}

 

public override bool Equals(object obj)

{

if (obj is Pacient)

{

Pacient p = (obj as Pacient);

bool b = true;

if (Name!= p.Name) b = false;

if (Address!= p.Address) b = false;

if (Birthday!= p.Birthday) b = false;

if (Data_arrival!= p.Data_arrival) b = false;

if (Data_depart!= p.Data_depart) b = false;

if (Diagnosis.Departament!= p.Diagnosis.Departament) b = false;

if (Diagnosis.Name!= p.Diagnosis.Name) b = false;

if (Diagnosis.Personnel!= p.Diagnosis.Personnel) b = false;

if (Diagnosis.Description!= p.Diagnosis.Description) b = false;

if (Departament!= p.Departament) b = false;

return b;

}

else return false;

}

}

 

:

public class PatientMap: ClassMap<Pacient>

{

public PatientMap()

{

Table("pacienty");

Id(x => x.Id).Not.Nullable();

Map(x => x.Name).Not.Nullable();

Map(x => x.Address);

Map(x => x.Birthday);

Map(x => x.Data_arrival);

Map(x => x.Data_depart);

References(x => x.Departament, "Departament_id");

References(x => x.Diagnosis, "Diagnosis_id");

}

}

 

Personnel

:

public class Personnel

{

public virtual int Id { get; set; }

public virtual string Name { get; set; }

public virtual string Address { get; set; }

public virtual DateTime Birthday { get; set; }

public virtual string Phone { get; set; }

public virtual string Post { get; set; }

public virtual decimal Salary{ get; set; }

public virtual Departament Departament{ get; set; }

 

public override bool Equals(object obj)

{

if (obj is Personnel)

{

Personnel p = (obj as Personnel);

bool b = true;

if (Name!= p.Name) b = false;

if (Address!= p.Address) b = false;

if (Birthday!= p.Birthday) b = false;

if (Phone!= p.Phone) b = false;

if (Post!= p.Post) b = false;

if (Salary!= p.Salary) b = false;

if (Departament!= p.Departament) b = false;

return b;

}

else return false;

}

}

:

public class PersonnelMap: ClassMap<Personnel>

{

public PersonnelMap()

{

Table("personnel");

Id(x => x.Id).Column("idPersonnel");

Map(x => x.Name);

Map(x => x.Address);

Map(x => x.Birthday);

Map(x => x.Phone);

Map(x => x.Post);

Map(x => x.Salary);

References(x => x.Departament)

.Column("Departament_id")

.Cascade.SaveUpdate();

 

}

}


-

, :

1. : , , , , , , .

2. : , , , , , , .

3. : , , , .

4. : .

5. : , , , , .

 

:

 

Personnel:

Name:

Address:

Birthday:

Phone:

Post:

Salary: decimal

Id_depart:

 

Pacienty:

Id_depart:

Id_diagnos:

Name:

Address:

Birthday:

Data_arrival:

Data_depart:

 

Diagnosis:

Id_depart:

Id_doctor:

Name:

 

Medications:

Name:

Numb_per_day:

Duration:

Price: decimal

 

Departament:

Id:

Name:

 


 

: , , , (. )

Departament.

 

public void Fill()

{

using (var session = parent.MySession.OpenSession())

{

try

{

DepartTable.Rows.Clear();

var deps = session.CreateCriteria(typeof (Departament)).List<Departament>();

foreach (var d in deps)

DepartTable.Rows.Add(d.Name);

}

catch (Exception exception)

{

MessageBox.Show(exception.Message, " ");

}

finally

{

session.Close();

}

}

}

Fill DepartTable Departament, .

 

 

:

void Insert(string sName)

{

using (var session = parent.MySession.OpenSession())

using (var transaction = session.BeginTransaction())

{

try

{

session.Save(new Departament {Name = sName});

transaction.Commit();

}

catch (Exception exception)

{

MessageBox.Show(exception.Message, " ");

transaction.Rollback();

}

finally

{

session.Close();

}

}

}

Insert Departament. .

 

:

void Update(string sName)

{

using (var session = parent.MySession.OpenSession())

using (var transaction = session.BeginTransaction())

{

try

{

var newdep = GetDepByName(session, DepartTable.CurrentRow.Cells[0].Value.ToString());

newdep.Name = sName;

session.Update(newdep);

transaction.Commit();

}

catch (Exception exception)

{

MessageBox.Show(exception.Message, " ");

transaction.Rollback();

}

}

}

 

Update DepartTable. .

 

 

:

public void Delete()

{

using (var session = parent.MySession.OpenSession())

using (var transaction = session.BeginTransaction())

{

try

{

var olddep = GetDepByName(session, DepartTable.CurrentRow.Cells[0].Value.ToString());

session.Delete(olddep);

transaction.Commit();

}

catch (Exception exception)

{

MessageBox.Show(exception.Message, " ");

transaction.Rollback();

}

 

Delete DepartTable Departament.





:


: 2017-01-28; !; : 1321 |


:

:

: , .
==> ...

2191 - | 1812 -


© 2015-2024 lektsii.org - -

: 0.189 .