NHibernate چیست و آموزش استفاده از NHibernate
چهارشنبه 24 تیر 1394یک پروژه اوپن سورس ORM دات نت معروف می باشد. این بر پایه فریم ورک ORM جاوا که خود بسیار معروف است بوده و با ADO.NET ساخته شده است. نسخه فعلی آن 4.0.3 است و در ویژوال استادیو توسط Nuget manager نصب می شود.
NHibernate چیست ؟
یک ORM است که تحت پلت فرم دات نت مایکروسافت کار میکند ، و یک FrameWork را برای کار راحتتر و با پیچیدگی کمتر با database پیشنهاد میکند. در این مدل فیلدهای Database به آبجکتهای معادلی، برای استفاده در محیط دات نت تبدیل (map) میشوند . و با این کار برنامهنویسان از پیچیدگیهای ارتباطی DataBase ای خلاص میشوند. NHibernate با بانک های اطلاعاتی زیادی مانند SQL Server, Oracle, DB2, Firebird, Informix, Ingres, MySQL, PostgreSQL, SQLite, SQL Server CE و غیره کار می کند.
خلاصه ای از کار هایی که باید انجام دهیم :
ساخت یک پروژه WebAPI
نصب کردن NHibernate توسط Package Manager console یا Nuget
تعریف یک شیء Bussiness ساده
ساخت یک کلاس NHibernate Mapper برای بارگذاری و ذخیره شیء Bussiness
تنظیم NHibernate برای وصل شدن یه بانک اطلاعاتی
نوشتن عملیات CRUD (چهار عمل اصلی) ساده
ساختن پروژه WebAPI
یک پروژه WebAPI ساده با نام NHibernateExample می سازیم.
ساخت بانک اطلاعاتی
یک بانک اطلاعاتی با نام NHibernateExample ساخته و در آن یک جدول با نام User مانند شکل زیر ایجاد می نماییم :
ساخت شیء Bussiness
یک کلاس User مانند زیر می سازیم :
public class User { public virtual int Id { get; set; } public virtual String FirstName { get; set; } public virtual String LastName { get; set; } }
یک کلاس NHibernate Mapper برای بارگذاری و ذخیره سازی شیء Bussiness مانند زیر می سازیم :
public class UserMap: ClassMapping < User > { public UserMap() { Schema("[dbo]"); Table("[User]"); Id(i = > i.Id, map = > map.Generator(Generators.GuidComb)); Property(x = > x.FirstName, m = > { m.NotNullable(true); }); Property(x = > x.LastName, m = > { m.NotNullable(true); }); } }
تنظیم NHibernate برای وصل شدن یه بانک اطلاعاتی
یک کلاس با نام ConfigurationManager می سازیم.
public static class ConfigurationManager { public static Configuration SetConfiguration() { var mapper = new ModelMapper(); var config = new Configuration(); mapper.AddMappings(Assembly.GetExecutingAssembly().GetExportedTypes()); config.DataBaseIntegration(x = > { x.ConnectionString = "Data Source=U6031005-TPL-A;Initial Catalog=NHibernateExample;Integrated Security=True"; x.Driver < SqlClientDriver > (); x.Dialect < MsSql2008Dialect > (); }); config.AddAssembly(Assembly.GetExecutingAssembly()); config.AddMapping(mapper.CompileMappingForAllExplicitlyAddedEntities()); return config; } }
نوشتن عملیات CRUD (چهار عمل اصلی) ساده
یک کلاس DataAccess با نام DALUser ایجاد می کنیم.
public class DalUser: IDALUser { private ISessionFactory sessionFactory; public DalUser() { var config = ConfigurationManager.SetConfiguration(); sessionFactory = config.BuildSessionFactory(); } public List < User > UserList() { var userList = new List < User > (); using(var session = sessionFactory.OpenSession()) { using(var tx = session.BeginTransaction()) { userList = session.Query < User > ().ToList(); tx.Commit(); } } return userList; } }
ساخت کلاس Bussiness
public class BLUser: IBLUser { public List < User > UserList() { IDALUser dalUser = new DalUser(); return dalUser.UserList(); } }
ساخت کلاس Controller
[RoutePrefix("User")] public class UserController: ApiController { [Route("UserList")] public IHttpActionResult getUserList() { IBLUser blUser = new BLUser(); var userlist = blUser.UserList(); return Ok(userlist); } }
- ASP.net MVC
- 5k بازدید
- 7 تشکر