{"id":3106,"date":"2020-08-06T15:30:14","date_gmt":"2020-08-06T10:00:14","guid":{"rendered":"https:\/\/www.planetecomsolutions.com\/blog\/"},"modified":"2022-12-22T16:42:46","modified_gmt":"2022-12-22T11:12:46","slug":"entity-framework-core-as-orm","status":"publish","type":"post","link":"https:\/\/www.planetecomsolutions.com\/blog\/entity-framework-core-as-orm\/","title":{"rendered":"Entity Framework Core as ORM"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-post\" data-elementor-id=\"3106\" class=\"elementor elementor-3106\">\n\t\t\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-e2d467d elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"e2d467d\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-7834d16\" data-id=\"7834d16\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-fbe482c elementor-widget elementor-widget-image\" data-id=\"fbe482c\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img fetchpriority=\"high\" decoding=\"async\" width=\"525\" height=\"275\" src=\"https:\/\/www.planetecomsolutions.com\/blog\/wp-content\/uploads\/2020\/08\/Entity-Frame-work-1024x536.jpg\" class=\"attachment-large size-large wp-image-3108\" alt=\"Entity Framework\" srcset=\"https:\/\/www.planetecomsolutions.com\/blog\/wp-content\/uploads\/2020\/08\/Entity-Frame-work-1024x536.jpg 1024w, https:\/\/www.planetecomsolutions.com\/blog\/wp-content\/uploads\/2020\/08\/Entity-Frame-work-300x157.jpg 300w, https:\/\/www.planetecomsolutions.com\/blog\/wp-content\/uploads\/2020\/08\/Entity-Frame-work-768x402.jpg 768w, https:\/\/www.planetecomsolutions.com\/blog\/wp-content\/uploads\/2020\/08\/Entity-Frame-work-980x513.jpg 980w, https:\/\/www.planetecomsolutions.com\/blog\/wp-content\/uploads\/2020\/08\/Entity-Frame-work.jpg 1200w\" sizes=\"(max-width: 525px) 100vw, 525px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-550a564 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"550a564\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-a319549\" data-id=\"a319549\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-68109b3 elementor-widget elementor-widget-text-editor\" data-id=\"68109b3\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>In the initial stage, developers used to write <a href=\"https:\/\/docs.microsoft.com\/en-us\/dotnet\/framework\/data\/adonet\/ado-net-overview\" target=\"_blank\" rel=\"noopener\"><strong>ADO.NET<\/strong><\/a> code or Enterprise Data Access Block to save or retrieve application data from the database. This process typically included opening a connection to the database, creating a Dataset to fetch or submit the data, converting data from the Dataset to objects or vice-versa to apply business rules. This was a long process having loopholes for errors.<\/p><p>To automate all these database-related activities, implement a higher level of abstraction, separation of concerns and perform many more additional functionalities like tracking, caching, transaction handling etc., Microsoft provided a \u201cfull ORM\u201d called &#8220;<a href=\"https:\/\/docs.microsoft.com\/en-us\/ef\/core\/\"><strong>Entity Framework Core<\/strong><\/a>&#8220;.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-cb5c3e0 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"cb5c3e0\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-68e3af9\" data-id=\"68e3af9\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-b733ee2 elementor-widget elementor-widget-heading\" data-id=\"b733ee2\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\">What is Entity Framework Core?<\/h3>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-7913b12 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"7913b12\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-1175531\" data-id=\"1175531\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-5b47d66 elementor-widget elementor-widget-text-editor\" data-id=\"5b47d66\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>It is an open-source ORM (Object Relational Mapper)\u00a0that enables developers to work with data using objects of domain models without focusing on the structure and schema of the underlying database. With this, developers can easily implement a higher level of abstraction for data access with very less code as compared to traditional approaches of data access.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-06a9b29 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"06a9b29\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-0f1d2ca\" data-id=\"0f1d2ca\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-3db0326 elementor-widget elementor-widget-heading\" data-id=\"3db0326\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\">Workflows with EF (Entity Framework) Core<\/h3>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-4e81eaf elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"4e81eaf\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-c1bedf6\" data-id=\"c1bedf6\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-bb24f66 elementor-widget elementor-widget-text-editor\" data-id=\"bb24f66\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>EF Core provides the following workflows:<\/p><ol><li><strong>Database-first approach: <\/strong>In this approach, most of the efforts are focused on designing database structure. It is a traditional approach which many developers are doing for years. It is also known as \u201cReverse Engineering\u201d<\/li><\/ol><p><strong>When to use:<\/strong><\/p><ul><li>If you have created a database with all tables and related objects (i.e., stored procedures).<\/li><li>If you have different teams to design the database and programmers are supposed to integrate the database with an application.<\/li><li>If you already have a stable database and you have a scenario to use the existing database.<\/li><\/ul><p><strong>How to use: <\/strong>In Package Manager Console write the command:<\/p><p>Scaffold-DbContext [-Connection] &lt;String&gt; [-Provider] &lt;String&gt; [-OutputDir&lt;String&gt;] [-Context &lt;String&gt;] [-Schemas &lt;String[]&gt;] [-Tables &lt;String[]&gt;] [-DataAnnotations] [-Force] [-Environment &lt;String&gt;] [-Project &lt;String&gt;] [-StartupProject&lt;String&gt;] [&lt;CommonParameters&gt;]<\/p><p>Provide the params and Entity Framework Core creates your domain models along with the Database Context.<\/p><ol start=\"2\"><li><strong>Code-first approach: <\/strong>In this approach, continuous database syncing is easy using migration. It is a very important feature that facilitates the upgrade or downgrade to any change\/commit.<\/li><\/ol><p><strong>When to use:<\/strong><\/p><ul><li>If you are the programmer and you designed database as well.<\/li><li>If database changes are more frequent.<\/li><li>If the application is scalable and needs tracking<\/li><\/ul><p><strong>How to use: <\/strong>Create your domain models (POCOs).Use EF Core commands in Package Manager Console to make EF Core generate the tables. Along with migration, a History table is also generated for providing version control.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-ec4ba39 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"ec4ba39\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-a41d16c\" data-id=\"a41d16c\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-c3d24b1 elementor-widget elementor-widget-heading\" data-id=\"c3d24b1\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\">Advantages and Features of EF Core<\/h3>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-dd5c0b7 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"dd5c0b7\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-f14db5d\" data-id=\"f14db5d\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-20df261 elementor-widget elementor-widget-text-editor\" data-id=\"20df261\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<ul><li><strong>Lightweight<\/strong>: EF Core is a collection of lightweight APIs.<\/li><li><strong>Cross Platform<\/strong>: EF Core is cross-platform i.e., it can run on Windows, Linux and Mac.<\/li><li><strong>Modelling:<\/strong>\u00a0EF Core creates an EDM (Entity Data Model) based on POCO (Plain Old CLR Object) entities with properties of different data types for querying or saving entity data to the database.<\/li><li><strong>Querying:<\/strong>\u00a0Along with allowing execution of raw SQL queries directly to the database, EF Core allows the use of LINQ queries to retrieve data. The database provider translates these LINQ queries to the database-specific query language (e.g. SQL for a relational database).<\/li><li><strong>Change Tracking:<\/strong>\u00a0EF Core keeps track of changes happening to the entities.<\/li><li><strong>Saving:<\/strong>\u00a0EF Core executes INSERT, UPDATE, and DELETE commands to the database based on the changes occurred to your entities when you call the\u00a0SaveChanges()\u00a0method. EF also provides the asynchronous\u00a0SaveChangesAsync()\u00a0method.<\/li><li><strong>Concurrency:<\/strong>\u00a0EF Core uses \u201cOptimistic Concurrency\u201d by default to protect accidental overwriting by another user.<\/li><li><strong>Transactions:<\/strong>\u00a0Along with providing options to customize transaction management, EF Core performs automatic transaction management while querying or saving data.<\/li><li><strong>Caching:<\/strong>\u00a0EF Core includes first level of caching out of the box. So, repeated querying will return the data from cache instead of hitting the database.<\/li><li><strong>Migrations:<\/strong>\u00a0EF Core provides a set of migration commands that can be executed in Package Manager Console or from the Command Line Interface to create or manage underlying database Schema.<\/li><\/ul>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-fc86aa5 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"fc86aa5\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-b00ffcd\" data-id=\"b00ffcd\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-59263a2 elementor-widget elementor-widget-heading\" data-id=\"59263a2\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\">Conclusion<\/h3>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-7bbafd2 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"7bbafd2\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-ca919bd\" data-id=\"ca919bd\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-08919b7 elementor-widget elementor-widget-text-editor\" data-id=\"08919b7\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>EF Core is a very smart productivity tool for modern developers. It surely saves much of their SQL writing time by providing a platform to write LINQ to perform data access. It generates SQL queries from your simple LINQ statements. It caches your data for future calls. It provides \u201cUnitOfWork\u201d pattern out of the box to manage tracking. It manages transactions for you and what not.<\/p><p>At <a href=\"https:\/\/www.planetecomsolutions.com\/\"><strong>PECS<\/strong><\/a>, we use Entity Framework Core in our tech stacks and have an industry experience of more than 20 years. We are always keen to understand customer requirements &amp; challenges and provide our guidance and advise on the architectural foot forward.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>In the initial stage, developers used to write ADO.NET code or Enterprise Data Access Block to save or retrieve application data from the database. This process typically included opening a connection to the database, creating a Dataset to fetch or submit the data, converting data from the Dataset to objects or vice-versa to apply business [&hellip;]<\/p>\n","protected":false},"author":4,"featured_media":3111,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-3106","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-technical"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.1.1 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\r\n<title>Entity Framework Core as ORM<\/title>\r\n<meta name=\"description\" content=\"Microsoft provided a \u201cfull ORM\u201d called \u201cEntity Framework Core&quot;\" \/>\r\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\r\n<link rel=\"canonical\" href=\"https:\/\/www.planetecomsolutions.com\/blog\/entity-framework-core-as-orm\/\" \/>\r\n<meta property=\"og:locale\" content=\"en_US\" \/>\r\n<meta property=\"og:type\" content=\"article\" \/>\r\n<meta property=\"og:title\" content=\"Entity Framework Core as ORM\" \/>\r\n<meta property=\"og:description\" content=\"Microsoft provided a \u201cfull ORM\u201d called \u201cEntity Framework Core&quot;\" \/>\r\n<meta property=\"og:url\" content=\"https:\/\/www.planetecomsolutions.com\/blog\/entity-framework-core-as-orm\/\" \/>\r\n<meta property=\"og:site_name\" content=\"PECS\" \/>\r\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/planetecom\" \/>\r\n<meta property=\"article:published_time\" content=\"2020-08-06T10:00:14+00:00\" \/>\r\n<meta property=\"article:modified_time\" content=\"2022-12-22T11:12:46+00:00\" \/>\r\n<meta property=\"og:image\" content=\"https:\/\/www.planetecomsolutions.com\/blog\/wp-content\/uploads\/2020\/08\/720x500.jpg\" \/>\r\n\t<meta property=\"og:image:width\" content=\"720\" \/>\r\n\t<meta property=\"og:image:height\" content=\"500\" \/>\r\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\r\n<meta name=\"author\" content=\"Gopal Gaur\" \/>\r\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\r\n<meta name=\"twitter:creator\" content=\"@planetecoms\" \/>\r\n<meta name=\"twitter:site\" content=\"@planetecoms\" \/>\r\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Gopal Gaur\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 minutes\" \/>\r\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.planetecomsolutions.com\/blog\/entity-framework-core-as-orm\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.planetecomsolutions.com\/blog\/entity-framework-core-as-orm\/\"},\"author\":{\"name\":\"Gopal Gaur\",\"@id\":\"https:\/\/www.planetecomsolutions.com\/blog\/#\/schema\/person\/f9b045eaa7f23cef855cbabe6a5de47c\"},\"headline\":\"Entity Framework Core as ORM\",\"datePublished\":\"2020-08-06T10:00:14+00:00\",\"dateModified\":\"2022-12-22T11:12:46+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.planetecomsolutions.com\/blog\/entity-framework-core-as-orm\/\"},\"wordCount\":794,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.planetecomsolutions.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.planetecomsolutions.com\/blog\/entity-framework-core-as-orm\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.planetecomsolutions.com\/blog\/wp-content\/uploads\/2020\/08\/720x500.jpg\",\"articleSection\":[\"Technical\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.planetecomsolutions.com\/blog\/entity-framework-core-as-orm\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.planetecomsolutions.com\/blog\/entity-framework-core-as-orm\/\",\"url\":\"https:\/\/www.planetecomsolutions.com\/blog\/entity-framework-core-as-orm\/\",\"name\":\"Entity Framework Core as ORM\",\"isPartOf\":{\"@id\":\"https:\/\/www.planetecomsolutions.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.planetecomsolutions.com\/blog\/entity-framework-core-as-orm\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.planetecomsolutions.com\/blog\/entity-framework-core-as-orm\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.planetecomsolutions.com\/blog\/wp-content\/uploads\/2020\/08\/720x500.jpg\",\"datePublished\":\"2020-08-06T10:00:14+00:00\",\"dateModified\":\"2022-12-22T11:12:46+00:00\",\"description\":\"Microsoft provided a \u201cfull ORM\u201d called \u201cEntity Framework Core\\\"\",\"breadcrumb\":{\"@id\":\"https:\/\/www.planetecomsolutions.com\/blog\/entity-framework-core-as-orm\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.planetecomsolutions.com\/blog\/entity-framework-core-as-orm\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.planetecomsolutions.com\/blog\/entity-framework-core-as-orm\/#primaryimage\",\"url\":\"https:\/\/www.planetecomsolutions.com\/blog\/wp-content\/uploads\/2020\/08\/720x500.jpg\",\"contentUrl\":\"https:\/\/www.planetecomsolutions.com\/blog\/wp-content\/uploads\/2020\/08\/720x500.jpg\",\"width\":720,\"height\":500,\"caption\":\"EFW\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.planetecomsolutions.com\/blog\/entity-framework-core-as-orm\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.planetecomsolutions.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Entity Framework Core as ORM\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.planetecomsolutions.com\/blog\/#website\",\"url\":\"https:\/\/www.planetecomsolutions.com\/blog\/\",\"name\":\"PECS\",\"description\":\"Blog\",\"publisher\":{\"@id\":\"https:\/\/www.planetecomsolutions.com\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.planetecomsolutions.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.planetecomsolutions.com\/blog\/#organization\",\"name\":\"Planet E-Com Solutions(PECS)\",\"url\":\"https:\/\/www.planetecomsolutions.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.planetecomsolutions.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.planetecomsolutions.com\/blog\/wp-content\/uploads\/2020\/01\/p-logo.png\",\"contentUrl\":\"https:\/\/www.planetecomsolutions.com\/blog\/wp-content\/uploads\/2020\/01\/p-logo.png\",\"width\":32,\"height\":32,\"caption\":\"Planet E-Com Solutions(PECS)\"},\"image\":{\"@id\":\"https:\/\/www.planetecomsolutions.com\/blog\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/planetecom\",\"https:\/\/x.com\/planetecoms\",\"https:\/\/www.linkedin.com\/company\/planetecom\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.planetecomsolutions.com\/blog\/#\/schema\/person\/f9b045eaa7f23cef855cbabe6a5de47c\",\"name\":\"Gopal Gaur\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.planetecomsolutions.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/9bb8fb1e38583e741817ef608fb1dcf60944853cff3a8af7f79873e77c9a5162?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/9bb8fb1e38583e741817ef608fb1dcf60944853cff3a8af7f79873e77c9a5162?s=96&d=mm&r=g\",\"caption\":\"Gopal Gaur\"},\"sameAs\":[\"https:\/\/www.planetecomsolutions.com\"],\"url\":\"https:\/\/www.planetecomsolutions.com\/blog\/author\/chitral-gupta\/\"}]}<\/script>\r\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Entity Framework Core as ORM","description":"Microsoft provided a \u201cfull ORM\u201d called \u201cEntity Framework Core\"","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.planetecomsolutions.com\/blog\/entity-framework-core-as-orm\/","og_locale":"en_US","og_type":"article","og_title":"Entity Framework Core as ORM","og_description":"Microsoft provided a \u201cfull ORM\u201d called \u201cEntity Framework Core\"","og_url":"https:\/\/www.planetecomsolutions.com\/blog\/entity-framework-core-as-orm\/","og_site_name":"PECS","article_publisher":"https:\/\/www.facebook.com\/planetecom","article_published_time":"2020-08-06T10:00:14+00:00","article_modified_time":"2022-12-22T11:12:46+00:00","og_image":[{"width":720,"height":500,"url":"https:\/\/www.planetecomsolutions.com\/blog\/wp-content\/uploads\/2020\/08\/720x500.jpg","type":"image\/jpeg"}],"author":"Gopal Gaur","twitter_card":"summary_large_image","twitter_creator":"@planetecoms","twitter_site":"@planetecoms","twitter_misc":{"Written by":"Gopal Gaur","Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.planetecomsolutions.com\/blog\/entity-framework-core-as-orm\/#article","isPartOf":{"@id":"https:\/\/www.planetecomsolutions.com\/blog\/entity-framework-core-as-orm\/"},"author":{"name":"Gopal Gaur","@id":"https:\/\/www.planetecomsolutions.com\/blog\/#\/schema\/person\/f9b045eaa7f23cef855cbabe6a5de47c"},"headline":"Entity Framework Core as ORM","datePublished":"2020-08-06T10:00:14+00:00","dateModified":"2022-12-22T11:12:46+00:00","mainEntityOfPage":{"@id":"https:\/\/www.planetecomsolutions.com\/blog\/entity-framework-core-as-orm\/"},"wordCount":794,"commentCount":0,"publisher":{"@id":"https:\/\/www.planetecomsolutions.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.planetecomsolutions.com\/blog\/entity-framework-core-as-orm\/#primaryimage"},"thumbnailUrl":"https:\/\/www.planetecomsolutions.com\/blog\/wp-content\/uploads\/2020\/08\/720x500.jpg","articleSection":["Technical"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.planetecomsolutions.com\/blog\/entity-framework-core-as-orm\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.planetecomsolutions.com\/blog\/entity-framework-core-as-orm\/","url":"https:\/\/www.planetecomsolutions.com\/blog\/entity-framework-core-as-orm\/","name":"Entity Framework Core as ORM","isPartOf":{"@id":"https:\/\/www.planetecomsolutions.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.planetecomsolutions.com\/blog\/entity-framework-core-as-orm\/#primaryimage"},"image":{"@id":"https:\/\/www.planetecomsolutions.com\/blog\/entity-framework-core-as-orm\/#primaryimage"},"thumbnailUrl":"https:\/\/www.planetecomsolutions.com\/blog\/wp-content\/uploads\/2020\/08\/720x500.jpg","datePublished":"2020-08-06T10:00:14+00:00","dateModified":"2022-12-22T11:12:46+00:00","description":"Microsoft provided a \u201cfull ORM\u201d called \u201cEntity Framework Core\"","breadcrumb":{"@id":"https:\/\/www.planetecomsolutions.com\/blog\/entity-framework-core-as-orm\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.planetecomsolutions.com\/blog\/entity-framework-core-as-orm\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.planetecomsolutions.com\/blog\/entity-framework-core-as-orm\/#primaryimage","url":"https:\/\/www.planetecomsolutions.com\/blog\/wp-content\/uploads\/2020\/08\/720x500.jpg","contentUrl":"https:\/\/www.planetecomsolutions.com\/blog\/wp-content\/uploads\/2020\/08\/720x500.jpg","width":720,"height":500,"caption":"EFW"},{"@type":"BreadcrumbList","@id":"https:\/\/www.planetecomsolutions.com\/blog\/entity-framework-core-as-orm\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.planetecomsolutions.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Entity Framework Core as ORM"}]},{"@type":"WebSite","@id":"https:\/\/www.planetecomsolutions.com\/blog\/#website","url":"https:\/\/www.planetecomsolutions.com\/blog\/","name":"PECS","description":"Blog","publisher":{"@id":"https:\/\/www.planetecomsolutions.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.planetecomsolutions.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.planetecomsolutions.com\/blog\/#organization","name":"Planet E-Com Solutions(PECS)","url":"https:\/\/www.planetecomsolutions.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.planetecomsolutions.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.planetecomsolutions.com\/blog\/wp-content\/uploads\/2020\/01\/p-logo.png","contentUrl":"https:\/\/www.planetecomsolutions.com\/blog\/wp-content\/uploads\/2020\/01\/p-logo.png","width":32,"height":32,"caption":"Planet E-Com Solutions(PECS)"},"image":{"@id":"https:\/\/www.planetecomsolutions.com\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/planetecom","https:\/\/x.com\/planetecoms","https:\/\/www.linkedin.com\/company\/planetecom"]},{"@type":"Person","@id":"https:\/\/www.planetecomsolutions.com\/blog\/#\/schema\/person\/f9b045eaa7f23cef855cbabe6a5de47c","name":"Gopal Gaur","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.planetecomsolutions.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/9bb8fb1e38583e741817ef608fb1dcf60944853cff3a8af7f79873e77c9a5162?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/9bb8fb1e38583e741817ef608fb1dcf60944853cff3a8af7f79873e77c9a5162?s=96&d=mm&r=g","caption":"Gopal Gaur"},"sameAs":["https:\/\/www.planetecomsolutions.com"],"url":"https:\/\/www.planetecomsolutions.com\/blog\/author\/chitral-gupta\/"}]}},"_links":{"self":[{"href":"https:\/\/www.planetecomsolutions.com\/blog\/wp-json\/wp\/v2\/posts\/3106","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.planetecomsolutions.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.planetecomsolutions.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.planetecomsolutions.com\/blog\/wp-json\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"https:\/\/www.planetecomsolutions.com\/blog\/wp-json\/wp\/v2\/comments?post=3106"}],"version-history":[{"count":7,"href":"https:\/\/www.planetecomsolutions.com\/blog\/wp-json\/wp\/v2\/posts\/3106\/revisions"}],"predecessor-version":[{"id":4288,"href":"https:\/\/www.planetecomsolutions.com\/blog\/wp-json\/wp\/v2\/posts\/3106\/revisions\/4288"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.planetecomsolutions.com\/blog\/wp-json\/wp\/v2\/media\/3111"}],"wp:attachment":[{"href":"https:\/\/www.planetecomsolutions.com\/blog\/wp-json\/wp\/v2\/media?parent=3106"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.planetecomsolutions.com\/blog\/wp-json\/wp\/v2\/categories?post=3106"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.planetecomsolutions.com\/blog\/wp-json\/wp\/v2\/tags?post=3106"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}