Merhabalar, bu yazıyı okumadan önce şu yazıyı okumanızı tavsiye eder ve söze böylelikle başlarım. :) Bilindiği üzere NHibernate kendine has HQL diye bir sorgulama diline sahiptir. Bu sorgulama dilini öğrenmek yerine ben linq le gayet iyiydim diyenler için NHibernate.Linq projesi geliştirilmiş. Kullanımına dair küçük bir örnek:
session.Linq<Ogrenci>().ForEach(o => Console.WriteLine(o.AdiSoyadi));
Tüm öğrencilerin adını ForEach ile yazdıran örnek uygulama kodu:
using System;
using NHibernate.Cfg;
using NHibernate;
using FluentNHibernate.Cfg;
using NHibernate.Tool.hbm2ddl;
using FluentNHibernate.Mapping;
using NHibernate.Linq;
namespace NHibernateLinqProject
{
class Program
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Program başldı");
using (var sessionFactory = GetSessionFactory())
{
Console.WriteLine("Session Factory oluşturuldu");
using (var session = sessionFactory.OpenSession())
{
Console.WriteLine("Öğrenci adları yazdırılıyor:");
session.Linq().ForEach(o => Console.WriteLine(o.AdiSoyadi));
}
}
}
static ISessionFactory GetSessionFactory()
{
Configuration configuration = new Configuration();
configuration.Configure("DatabaseConfiguration.xml"); // Veritabanı ayarlarını oku
return Fluently.Configure(configuration)
.Mappings(m => m.FluentMappings.Add())
.ExposeConfiguration(BuildSchema)
.BuildSessionFactory();
}
static void BuildSchema(Configuration config)
{
new SchemaExport(config).Create(false, true);
}
}
class Ogrenci
{
public virtual int Id { get; set; }
public virtual string AdiSoyadi { get; set; }
public virtual DateTime DogumTarihi { get; set; }
}
class OgrenciMap : ClassMap
{
public OgrenciMap()
{
Id(x => x.Id);
Map(x => x.AdiSoyadi);
Map(x => x.DogumTarihi);
}
}
}
}
Faydalı olması dileğiyle.
ed7220b1-c863-49e8-a595-29940e585286|1|5.0