به بیان ساده ،
هر محیطی داده ها رو در انواعی که برای خودش قابل فهم باشه نگهداری می کنه.
اگر داده ای بخواد از محیطی به محیط دیگه انتقال پیدا کنه، باید یکی باشه براش قابل فهم کنه.
برای نمونه اطلاعات شخصی رو در نظر بگیرید که ویژگی هایی مثل نام، نام خانوادگی، قد، وزن و ... داره.
در محیط برنامه نویسی شی گرا ، این اطلاعات با عنوان شی (Object) شخص دیده می شه. پیاده سازی به صورت کلاس (Class) شخص که دارای یه سری ویژگی (Property) هست.
public class Person { public long Id { get; set; } public string Name { get; set; } public string Family { get; set; } public int Age { get; set; } }
اما در محیط پایگاه داده رابطه ای ، این اطلاعات بصورت جدول (Table) شخص هست که ویژگی ها در یه سری ستون (Column) نگهداری می شه.
حال به فرض می خوایم در محیط برنامه نویسی شی گرا، اطلاعات شخصی رو از محیط پایگاه داده رابطه ای واکشی کنیم.
ما کد واکشی اطلاعات رو در زبان برنامه نویسی مورد نظرمون می نویسیم و دیگه کاری به کوئری نویسی سمت پایگاه داده نداریم.
به بیان ساده ، ORM اون کد رو از ما میگیره ، به کوئری قابل فهم سمت دیتابیس تبدیل می کنه و به عنوان واسط ، نگاشت داده ها به انواع قابل فهم بین دو محیط رو فراهم می کنه.
برای هر زبان برنامه نویسی ای ORM هایی وجود داره.
مثلا برای زبان سی شارپ : EF Core ، NHibernate