{"id":2157,"date":"2023-06-10T21:04:53","date_gmt":"2023-06-10T14:04:53","guid":{"rendered":"https:\/\/csharptutorial.net\/?page_id=2157"},"modified":"2023-06-12T16:59:58","modified_gmt":"2023-06-12T09:59:58","slug":"ef-core-insert","status":"publish","type":"page","link":"https:\/\/www.csharptutorial.net\/entity-framework-core-tutorial\/ef-core-insert\/","title":{"rendered":"EF Core Insert"},"content":{"rendered":"\n<p><strong>Summary<\/strong>: in this tutorial, you will learn how to use the EF Core <code>SaveChanges()<\/code> method to insert rows into tables.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Setting up an EF Core project<\/h2>\n\n\n\n<p>We&#8217;ll use the following data model which includes <code>Department<\/code>, <code>Employee<\/code>, <code>EmployeeProfile<\/code>, and <code>Skill<\/code>:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/csharptutorial.net\/wp-content\/uploads\/2023\/06\/EF-Core-Data-Model-1024x459.png\" alt=\"EF Core Data Model\" class=\"wp-image-2245\" width=\"768\" height=\"344\" srcset=\"https:\/\/www.csharptutorial.net\/wp-content\/uploads\/2023\/06\/EF-Core-Data-Model-1024x459.png 1024w, https:\/\/www.csharptutorial.net\/wp-content\/uploads\/2023\/06\/EF-Core-Data-Model-300x134.png 300w, https:\/\/www.csharptutorial.net\/wp-content\/uploads\/2023\/06\/EF-Core-Data-Model-768x344.png 768w, https:\/\/www.csharptutorial.net\/wp-content\/uploads\/2023\/06\/EF-Core-Data-Model.png 1125w\" sizes=\"auto, (max-width: 768px) 100vw, 768px\" \/><\/figure>\n\n\n\n<p>First, download the HR project:<\/p>\n\n\n\n<p><a href=\"https:\/\/csharptutorial.net\/wp-content\/uploads\/2023\/06\/EFCoreInsert.zip\" target=\"_blank\" rel=\"noreferrer noopener\">Download the HR project<\/a><\/p>\n\n\n\n<p>Second, run the <code>Add-Migration<\/code> command in the <strong>Package Manager Console <\/strong>(PMC) to create a new migration:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">Add-Migration Initial<\/code><\/span><\/pre>\n\n\n<p>Third, execute the <code>Update-Database<\/code> in PMC<code> <\/code>to create a new database and tables:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">Update-Database<\/code><\/span><\/pre>\n\n\n<h2 class=\"wp-block-heading\">Inserting a single row<\/h2>\n\n\n\n<p>To insert a new row into a table, you follow these steps:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>First, create a new entity. <\/li>\n\n\n\n<li>Second, add it to the corresponding <code>DbSet<\/code>. <\/li>\n\n\n\n<li>Third, call the <code>SaveChanges()<\/code> method of the <code>DbContext<\/code> class.<\/li>\n<\/ul>\n\n\n\n<p>For example, the following creates a new department, adds it to the <code>DbSet&lt;Department&gt;<\/code>, and calls the <code>SaveChanges()<\/code> method of the <code>HRContext<\/code> to insert a department into the <code>Departments<\/code> table:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-1\" data-shcb-language-name=\"C#\" data-shcb-language-slug=\"cs\"><span><code class=\"hljs language-cs\"><span class=\"hljs-keyword\">using<\/span> HR;\n\n<span class=\"hljs-keyword\">using<\/span> <span class=\"hljs-keyword\">var<\/span> context = <span class=\"hljs-keyword\">new<\/span> HRContext();\n<span class=\"hljs-keyword\">var<\/span> department = <span class=\"hljs-keyword\">new<\/span> Department() { Name = <span class=\"hljs-string\">\"Sales\"<\/span> };\ncontext.Departments.Add(department);\ncontext.SaveChanges();<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-1\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">C#<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">cs<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>When running the program, you&#8217;ll see that EF Core generates the following SQL command:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-2\" data-shcb-language-name=\"SQL (Structured Query Language)\" data-shcb-language-slug=\"sql\"><span><code class=\"hljs language-sql\"><span class=\"hljs-comment\">-- &#91;Parameters=&#91;@p0='Sales' (Nullable = false) (Size = 4000)], CommandType='Text', CommandTimeout='30']<\/span>\n<span class=\"hljs-keyword\">SET<\/span> IMPLICIT_TRANSACTIONS <span class=\"hljs-keyword\">OFF<\/span>;\n<span class=\"hljs-keyword\">SET<\/span> NOCOUNT <span class=\"hljs-keyword\">ON<\/span>;\n<span class=\"hljs-keyword\">INSERT<\/span> <span class=\"hljs-keyword\">INTO<\/span> &#91;Departments] (&#91;<span class=\"hljs-keyword\">Name<\/span>])\n<span class=\"hljs-keyword\">OUTPUT<\/span> INSERTED.&#91;<span class=\"hljs-keyword\">Id<\/span>]\n<span class=\"hljs-keyword\">VALUES<\/span> (@p0);<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-2\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">SQL (Structured Query Language)<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">sql<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>In this example, EF Core uses a simple <code><a href=\"https:\/\/www.sqlservertutorial.net\/sql-server-basics\/sql-server-insert\/\" target=\"_blank\" rel=\"noreferrer noopener\">INSERT<\/a><\/code> statement to insert a new department into the <code>Departments<\/code> table and returns the inserted Id.<\/p>\n\n\n\n<p>If you view the <code>Departments<\/code> table, you&#8217;ll see one row inserted:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-3\" data-shcb-language-name=\"plaintext\" data-shcb-language-slug=\"plaintext\"><span><code class=\"hljs language-plaintext\">Id          Name\n----------- ----------\n1           Sales\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-3\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">plaintext<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">plaintext<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h2 class=\"wp-block-heading\">Inserting multiple rows<\/h2>\n\n\n\n<p>To insert multiple rows into a table: <\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>First, create multiple entities<\/li>\n\n\n\n<li>Second, add the entities to the corresponding <code>DbSet<\/code> <\/li>\n\n\n\n<li>Third, call the <code>SaveChanges()<\/code> method of the <code>DbContext<\/code> to create the entities in the database table.<\/li>\n<\/ul>\n\n\n\n<p>For example, the following illustrates how to insert multiple <code>Department<\/code> entities:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-4\" data-shcb-language-name=\"C#\" data-shcb-language-slug=\"cs\"><span><code class=\"hljs language-cs\"><span class=\"hljs-keyword\">using<\/span> HR;\n\n<span class=\"hljs-keyword\">using<\/span> <span class=\"hljs-keyword\">var<\/span> context = <span class=\"hljs-keyword\">new<\/span> HRContext();\n\n<span class=\"hljs-keyword\">var<\/span> deparments = <span class=\"hljs-keyword\">new<\/span> List&lt;Department&gt;()\n{\n    <span class=\"hljs-keyword\">new<\/span> Department(){ Name = <span class=\"hljs-string\">\"Marketing\"<\/span>},\n    <span class=\"hljs-keyword\">new<\/span> Department(){ Name = <span class=\"hljs-string\">\"Logistics\"<\/span>},\n    <span class=\"hljs-keyword\">new<\/span> Department(){ Name = <span class=\"hljs-string\">\"HR\"<\/span>},\n    <span class=\"hljs-keyword\">new<\/span> Department(){ Name = <span class=\"hljs-string\">\"General Administration\"<\/span>},\n    <span class=\"hljs-keyword\">new<\/span> Department(){ Name = <span class=\"hljs-string\">\"IT\"<\/span>},\n};\n\n<span class=\"hljs-keyword\">foreach<\/span> (<span class=\"hljs-keyword\">var<\/span> department <span class=\"hljs-keyword\">in<\/span> deparments)\n{\n    context.Departments.Add(department);\n}\n\ncontext.SaveChanges();<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-4\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">C#<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">cs<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Behind the scenes, EF Core generates a <code><a href=\"https:\/\/www.sqlservertutorial.net\/sql-server-basics\/sql-server-merge\/\" target=\"_blank\" rel=\"noreferrer noopener\">MERGE<\/a><\/code> statement to insert multiple rows into a table as shown in the log:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-5\" data-shcb-language-name=\"SQL (Structured Query Language)\" data-shcb-language-slug=\"sql\"><span><code class=\"hljs language-sql\"><span class=\"hljs-comment\">-- &#91;Parameters=&#91;@p0='Marketing' (Nullable = false) (Size = 4000), @p1='Logistics' (Nullable = false) (Size = 4000), @p2='HR' (Nullable = false) (Size = 4000), @p3='General Administration' (Nullable = false) (Size = 4000), @p4='IT' (Nullable = false) (Size = 4000)], CommandType='Text', CommandTimeout='30']<\/span>\n<span class=\"hljs-keyword\">SET<\/span> IMPLICIT_TRANSACTIONS <span class=\"hljs-keyword\">OFF<\/span>;\n<span class=\"hljs-keyword\">SET<\/span> NOCOUNT <span class=\"hljs-keyword\">ON<\/span>;\n<span class=\"hljs-keyword\">MERGE<\/span> &#91;Departments] <span class=\"hljs-keyword\">USING<\/span> (\n<span class=\"hljs-keyword\">VALUES<\/span> (@p0, <span class=\"hljs-number\">0<\/span>),\n(@p1, <span class=\"hljs-number\">1<\/span>),\n(@p2, <span class=\"hljs-number\">2<\/span>),\n(@p3, <span class=\"hljs-number\">3<\/span>),\n(@p4, <span class=\"hljs-number\">4<\/span>)) <span class=\"hljs-keyword\">AS<\/span> i (&#91;<span class=\"hljs-keyword\">Name<\/span>], _Position) <span class=\"hljs-keyword\">ON<\/span> <span class=\"hljs-number\">1<\/span>=<span class=\"hljs-number\">0<\/span>\n<span class=\"hljs-keyword\">WHEN<\/span> <span class=\"hljs-keyword\">NOT<\/span> <span class=\"hljs-keyword\">MATCHED<\/span> <span class=\"hljs-keyword\">THEN<\/span>\n<span class=\"hljs-keyword\">INSERT<\/span> (&#91;<span class=\"hljs-keyword\">Name<\/span>])\n<span class=\"hljs-keyword\">VALUES<\/span> (i.&#91;<span class=\"hljs-keyword\">Name<\/span>])\n<span class=\"hljs-keyword\">OUTPUT<\/span> INSERTED.&#91;<span class=\"hljs-keyword\">Id<\/span>], i._Position;<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-5\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">SQL (Structured Query Language)<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">sql<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-6\" data-shcb-language-name=\"plaintext\" data-shcb-language-slug=\"plaintext\"><span><code class=\"hljs language-plaintext\">Id          Name\n----------- --------------------------\n1           Sales\n2           Marketing\n3           Logistics\n4           HR\n5           General Administration\n6           IT<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-6\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">plaintext<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">plaintext<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h2 class=\"wp-block-heading\">Insert an entity that has a one-to-many relationship<\/h2>\n\n\n\n<p>The following creates an employee with department id 1. Since the <code>Employee<\/code> has the <code>DepartmentId<\/code> foreign key property, you need to assign a valid value to it:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-7\" data-shcb-language-name=\"C#\" data-shcb-language-slug=\"cs\"><span><code class=\"hljs language-cs\"><span class=\"hljs-keyword\">using<\/span> HR;\n\n\n<span class=\"hljs-keyword\">using<\/span> <span class=\"hljs-keyword\">var<\/span> context = <span class=\"hljs-keyword\">new<\/span> HRContext();\n\n<span class=\"hljs-keyword\">var<\/span> employee = <span class=\"hljs-keyword\">new<\/span> Employee()\n{\n    FirstName = <span class=\"hljs-string\">\"John\"<\/span>,\n    LastName = <span class=\"hljs-string\">\"Doe\"<\/span>,\n    Salary = <span class=\"hljs-number\">120000<\/span>,\n    JoinedDate = <span class=\"hljs-keyword\">new<\/span> DateTime(<span class=\"hljs-number\">2023<\/span>,<span class=\"hljs-number\">01<\/span>,<span class=\"hljs-number\">05<\/span>),\n    DepartmentId = <span class=\"hljs-number\">1<\/span>\n};\n\ncontext.Employees.Add(employee);\n\ncontext.SaveChanges();<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-7\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">C#<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">cs<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>If you run the program, EF Core will generate the following SQL and execute it to insert a new row into the Employees table:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-8\" data-shcb-language-name=\"SQL (Structured Query Language)\" data-shcb-language-slug=\"sql\"><span><code class=\"hljs language-sql\"> <span class=\"hljs-comment\">-- &#91;Parameters=&#91;@p0='1', @p1='John' (Nullable = false) (Size = 4000), @p2='2023-01-05T00:00:00.0000000', @p3='Doe' (Nullable = false) (Size = 4000), @p4='120000' (Precision = 18) (Scale = 2)], CommandType='Text', CommandTimeout='30']<\/span>\n<span class=\"hljs-keyword\">SET<\/span> IMPLICIT_TRANSACTIONS <span class=\"hljs-keyword\">OFF<\/span>;\n<span class=\"hljs-keyword\">SET<\/span> NOCOUNT <span class=\"hljs-keyword\">ON<\/span>;\n<span class=\"hljs-keyword\">INSERT<\/span> <span class=\"hljs-keyword\">INTO<\/span> &#91;Employees] (&#91;DepartmentId], &#91;FirstName], &#91;JoinedDate], &#91;LastName], &#91;Salary])\n<span class=\"hljs-keyword\">OUTPUT<\/span> INSERTED.&#91;<span class=\"hljs-keyword\">Id<\/span>]\n<span class=\"hljs-keyword\">VALUES<\/span> (@p0, @p1, @p2, @p3, @p4);<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-8\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">SQL (Structured Query Language)<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">sql<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-9\" data-shcb-language-name=\"plaintext\" data-shcb-language-slug=\"plaintext\"><span><code class=\"hljs language-plaintext\">Id          FirstName  LastName   Salary                         JoinedDate                  DepartmentId\n----------- ---------- ---------- ------------------------------ --------------------------- ------------\n1           John       Doe        120000.00                      2023-01-05 00:00:00.0000000 1<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-9\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">plaintext<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">plaintext<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>The following example finds the IT department and creates an employee that belongs to that department:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-10\" data-shcb-language-name=\"C#\" data-shcb-language-slug=\"cs\"><span><code class=\"hljs language-cs\"><span class=\"hljs-keyword\">using<\/span> HR;\n\n\n<span class=\"hljs-keyword\">using<\/span> <span class=\"hljs-keyword\">var<\/span> context = <span class=\"hljs-keyword\">new<\/span> HRContext();\n\n<span class=\"hljs-comment\">\/\/ find the IT department<\/span>\n<span class=\"hljs-keyword\">var<\/span> departmentName = <span class=\"hljs-string\">\"IT\"<\/span>;\n\n<span class=\"hljs-keyword\">var<\/span> department = context.Departments\n                    .Where(d =&gt; d.Name == departmentName)\n                    .FirstOrDefault();\n\n<span class=\"hljs-keyword\">if<\/span> (department == <span class=\"hljs-literal\">null<\/span>)\n{\n    Console.WriteLine(<span class=\"hljs-string\">$\"Department <span class=\"hljs-subst\">{departmentName}<\/span> not found.\"<\/span>);\n    <span class=\"hljs-keyword\">return<\/span>;\n}\n\n<span class=\"hljs-comment\">\/\/ create a new employee<\/span>\n<span class=\"hljs-keyword\">var<\/span> employee = <span class=\"hljs-keyword\">new<\/span> Employee()\n{\n    FirstName = <span class=\"hljs-string\">\"Jane\"<\/span>,\n    LastName = <span class=\"hljs-string\">\"Doe\"<\/span>,\n    Salary = <span class=\"hljs-number\">95000<\/span>,\n    JoinedDate = <span class=\"hljs-keyword\">new<\/span> DateTime(<span class=\"hljs-number\">2023<\/span>, <span class=\"hljs-number\">1<\/span>, <span class=\"hljs-number\">5<\/span>),\n    Department = department,\n};\n\ncontext.Employees.Add(employee);\ncontext.SaveChanges();<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-10\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">C#<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">cs<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>In this example, EF Core executes two queries:<\/p>\n\n\n\n<p>First, find the department whose name is <code>IT<\/code> using a <code>SELECT<\/code> statement:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-11\" data-shcb-language-name=\"SQL (Structured Query Language)\" data-shcb-language-slug=\"sql\"><span><code class=\"hljs language-sql\"><span class=\"hljs-comment\">-- &#91;Parameters=&#91;@__departmentName_0='IT' (Size = 4000)], CommandType='Text', CommandTimeout='30']<\/span>\n<span class=\"hljs-keyword\">SELECT<\/span> TOP(<span class=\"hljs-number\">1<\/span>) &#91;d].&#91;<span class=\"hljs-keyword\">Id<\/span>], &#91;d].&#91;<span class=\"hljs-keyword\">Name<\/span>]\n<span class=\"hljs-keyword\">FROM<\/span> &#91;Departments] <span class=\"hljs-keyword\">AS<\/span> &#91;d]\n<span class=\"hljs-keyword\">WHERE<\/span> &#91;d].&#91;<span class=\"hljs-keyword\">Name<\/span>] = @__departmentName_0<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-11\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">SQL (Structured Query Language)<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">sql<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Second, insert a new row into the Employees table:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-12\" data-shcb-language-name=\"SQL (Structured Query Language)\" data-shcb-language-slug=\"sql\"><span><code class=\"hljs language-sql\"><span class=\"hljs-comment\">-- &#91;Parameters=&#91;@p0='6', @p1='Jane' (Nullable = false) (Size = 4000), @p2='2023-01-05T00:00:00.0000000', @p3='Doe' (Nullable = false) (Size = 4000), @p4='95000' (Precision = 18) (Scale = 2)], CommandType='Text', CommandTimeout='30']<\/span>\n<span class=\"hljs-keyword\">SET<\/span> IMPLICIT_TRANSACTIONS <span class=\"hljs-keyword\">OFF<\/span>;\n<span class=\"hljs-keyword\">SET<\/span> NOCOUNT <span class=\"hljs-keyword\">ON<\/span>;\n<span class=\"hljs-keyword\">INSERT<\/span> <span class=\"hljs-keyword\">INTO<\/span> &#91;Employees] (&#91;DepartmentId], &#91;FirstName], &#91;JoinedDate], &#91;LastName], &#91;Salary])\n<span class=\"hljs-keyword\">OUTPUT<\/span> INSERTED.&#91;<span class=\"hljs-keyword\">Id<\/span>]\n<span class=\"hljs-keyword\">VALUES<\/span> (@p0, @p1, @p2, @p3, @p4);<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-12\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">SQL (Structured Query Language)<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">sql<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-13\" data-shcb-language-name=\"plaintext\" data-shcb-language-slug=\"plaintext\"><span><code class=\"hljs language-plaintext\">Id          FirstName  LastName   Salary                         JoinedDate                  DepartmentId\n----------- ---------- ---------- ------------------------------ --------------------------- ------------\n1           John       Doe        120000.00                      2023-01-05 00:00:00.0000000 1\n2           Jane       Doe        95000.00                       2023-01-05 00:00:00.0000000 6<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-13\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">plaintext<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">plaintext<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h2 class=\"wp-block-heading\">Insert an entity that has a one-to-one relationship<\/h2>\n\n\n\n<p>The following example illustrates how to insert an employee with a profile into the Employees and <code>EmployeeProfile<\/code> tables:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-14\" data-shcb-language-name=\"C#\" data-shcb-language-slug=\"cs\"><span><code class=\"hljs language-cs\"><span class=\"hljs-keyword\">using<\/span> HR;\n\n<span class=\"hljs-keyword\">var<\/span> employee = <span class=\"hljs-keyword\">new<\/span> Employee()\n{\n    FirstName = <span class=\"hljs-string\">\"Bob\"<\/span>,\n    LastName = <span class=\"hljs-string\">\"Climo\"<\/span>,\n    JoinedDate = <span class=\"hljs-keyword\">new<\/span> DateTime(<span class=\"hljs-number\">2023<\/span>, <span class=\"hljs-number\">1<\/span>, <span class=\"hljs-number\">5<\/span>),\n    Salary=<span class=\"hljs-number\">90000<\/span>,\n    DepartmentId = <span class=\"hljs-number\">1<\/span>,\n    Profile = <span class=\"hljs-keyword\">new<\/span> EmployeeProfile()\n    {\n        Phone = <span class=\"hljs-string\">\"(408)-123-456\"<\/span>,\n        Email = <span class=\"hljs-string\">\"bob@example.com\"<\/span>\n    },\n\n};\n\n<span class=\"hljs-keyword\">using<\/span> <span class=\"hljs-keyword\">var<\/span> context = <span class=\"hljs-keyword\">new<\/span> HRContext();\ncontext.Employees.Add(employee);\ncontext.SaveChanges();<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-14\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">C#<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">cs<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>In this example, we create a new <code>Employee<\/code> object and assign 1 to the <code>DepartmentId<\/code> property and a new <code>EmployeeProfile<\/code> object to the <code>Profile<\/code> property.<\/p>\n\n\n\n<p>Once we add the employee to the <code>Employees<\/code> <code>DbSet<\/code> and call the <code>SaveChanges()<\/code> method, EF Core generates and executes the two SQL commands:<\/p>\n\n\n\n<p>First, insert a new row into the <code>Employees<\/code> table and return the <code>Id<\/code> of the row:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-15\" data-shcb-language-name=\"SQL (Structured Query Language)\" data-shcb-language-slug=\"sql\"><span><code class=\"hljs language-sql\"><span class=\"hljs-comment\">-- &#91;Parameters=&#91;@p0='1', @p1='Bob' (Nullable = false) (Size = 4000), @p2='2023-01-05T00:00:00.0000000', @p3='Climo' (Nullable = false) (Size = 4000), @p4='900000' (Precision = 18) (Scale = 2)], CommandType='Text', CommandTimeout='30']<\/span>\n<span class=\"hljs-keyword\">SET<\/span> IMPLICIT_TRANSACTIONS <span class=\"hljs-keyword\">OFF<\/span>;\n<span class=\"hljs-keyword\">SET<\/span> NOCOUNT <span class=\"hljs-keyword\">ON<\/span>;\n<span class=\"hljs-keyword\">INSERT<\/span> <span class=\"hljs-keyword\">INTO<\/span> &#91;Employees] (&#91;DepartmentId], &#91;FirstName], &#91;JoinedDate], &#91;LastName], &#91;Salary])\n<span class=\"hljs-keyword\">OUTPUT<\/span> INSERTED.&#91;<span class=\"hljs-keyword\">Id<\/span>]\n<span class=\"hljs-keyword\">VALUES<\/span> (@p0, @p1, @p2, @p3, @p4);<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-15\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">SQL (Structured Query Language)<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">sql<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-16\" data-shcb-language-name=\"plaintext\" data-shcb-language-slug=\"plaintext\"><span><code class=\"hljs language-plaintext\">Id          FirstName  LastName   Salary                         JoinedDate                  DepartmentId\n----------- ---------- ---------- ------------------------------ --------------------------- ------------\n1           John       Doe        120000.00                      2023-01-05 00:00:00.0000000 1\n2           Jane       Doe        95000.00                       2023-01-05 00:00:00.0000000 6\n3           Bob        Climo      90000.00                      2023-01-05 00:00:00.0000000 1<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-16\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">plaintext<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">plaintext<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Second, insert a new row into the <code>EmployeeProfiles<\/code> table. The <code>EmployeeProfile<\/code> object has the <code>EmployeeId<\/code> returned by the first query:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-17\" data-shcb-language-name=\"C#\" data-shcb-language-slug=\"cs\"><span><code class=\"hljs language-cs\">-- &#91;Parameters=&#91;@p5=<span class=\"hljs-string\">'bob@example.com'<\/span> (Nullable = <span class=\"hljs-literal\">false<\/span>) (Size = <span class=\"hljs-number\">4000<\/span>), @p6=<span class=\"hljs-string\">'3'<\/span> (Nullable = <span class=\"hljs-literal\">true<\/span>), @p7=<span class=\"hljs-string\">'(408)-123-456'<\/span> (Nullable = <span class=\"hljs-literal\">false<\/span>) (Size = <span class=\"hljs-number\">4000<\/span>)], CommandType=<span class=\"hljs-string\">'Text'<\/span>, CommandTimeout=<span class=\"hljs-string\">'30'<\/span>]\nSET IMPLICIT_TRANSACTIONS OFF;\nSET NOCOUNT ON;\nINSERT INTO &#91;EmployeeProfiles] (&#91;Email], &#91;EmployeeId], &#91;Phone])\nOUTPUT INSERTED.&#91;Id]\nVALUES (@p5, @p6, @p7);<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-17\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">C#<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">cs<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-18\" data-shcb-language-name=\"CSS\" data-shcb-language-slug=\"css\"><span><code class=\"hljs language-css\"><span class=\"hljs-selector-tag\">Id<\/span>          <span class=\"hljs-selector-tag\">Phone<\/span>           <span class=\"hljs-selector-tag\">Email<\/span>           <span class=\"hljs-selector-tag\">EmployeeId<\/span>\n<span class=\"hljs-selector-tag\">-----------<\/span> <span class=\"hljs-selector-tag\">---------------<\/span> <span class=\"hljs-selector-tag\">---------------<\/span> <span class=\"hljs-selector-tag\">-----------<\/span>\n1           (408)<span class=\"hljs-selector-tag\">-123-456<\/span>   <span class=\"hljs-selector-tag\">bob<\/span><span class=\"hljs-keyword\">@example<\/span>.com <span class=\"hljs-number\">3<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-18\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">CSS<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">css<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h2 class=\"wp-block-heading\">Insert an entity that has a many-to-many relationship<\/h2>\n\n\n\n<p>The following example illustrates how to create a new employee with:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>FirstName<\/code>, <code>LastName<\/code>, <code>JoinedDate<\/code>, <code>Salary<\/code><\/li>\n\n\n\n<li><code>DepartmentId<\/code> 6, which is the <code>IT<\/code> department.<\/li>\n\n\n\n<li>A list of two <code>Skill<\/code> objects<\/li>\n<\/ul>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-19\" data-shcb-language-name=\"C#\" data-shcb-language-slug=\"cs\"><span><code class=\"hljs language-cs\"><span class=\"hljs-keyword\">using<\/span> HR;\n\n<span class=\"hljs-keyword\">var<\/span> employee = <span class=\"hljs-keyword\">new<\/span> Employee()\n{\n    FirstName = <span class=\"hljs-string\">\"Alice\"<\/span>,\n    LastName = <span class=\"hljs-string\">\"Smith\"<\/span>,\n    JoinedDate = <span class=\"hljs-keyword\">new<\/span> DateTime(<span class=\"hljs-number\">2023<\/span>, <span class=\"hljs-number\">1<\/span>, <span class=\"hljs-number\">5<\/span>),\n    Salary = <span class=\"hljs-number\">70000<\/span>,\n    DepartmentId = <span class=\"hljs-number\">6<\/span>,  <span class=\"hljs-comment\">\/\/ IT department<\/span>\n    Skills = <span class=\"hljs-keyword\">new<\/span> List&lt;Skill&gt;()\n    {\n        <span class=\"hljs-keyword\">new<\/span> (){ Title=<span class=\"hljs-string\">\"C# Programming\"<\/span> },\n        <span class=\"hljs-keyword\">new<\/span> (){ Title=<span class=\"hljs-string\">\"ASP.NET Core\"<\/span> }\n    }\n\n};\n\n<span class=\"hljs-keyword\">using<\/span> <span class=\"hljs-keyword\">var<\/span> context = <span class=\"hljs-keyword\">new<\/span> HRContext();\ncontext.Employees.Add(employee);\ncontext.SaveChanges();<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-19\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">C#<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">cs<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Once running the program, EF Core executes three SQL statements.<\/p>\n\n\n\n<p>First, insert a new row into the <code>Employees<\/code> table and return the id using the <code>INSERT<\/code> statement:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-20\" data-shcb-language-name=\"SQL (Structured Query Language)\" data-shcb-language-slug=\"sql\"><span><code class=\"hljs language-sql\"><span class=\"hljs-comment\">-- &#91;Parameters=&#91;@p0='6', @p1='Alice' (Nullable = false) (Size = 4000), @p2='2023-01-05T00:00:00.0000000', @p3='Smith' (Nullable = false) (Size = 4000), @p4='70000' (Precision = 18) (Scale = 2), @p5='C# Programming' (Nullable = false) (Size = 4000), @p6='ASP.NET Core' (Nullable = false) (Size = 4000)], CommandType='Text', CommandTimeout='30']<\/span>\n<span class=\"hljs-keyword\">SET<\/span> NOCOUNT <span class=\"hljs-keyword\">ON<\/span>;\n<span class=\"hljs-keyword\">INSERT<\/span> <span class=\"hljs-keyword\">INTO<\/span> &#91;Employees] (&#91;DepartmentId], &#91;FirstName], &#91;JoinedDate], &#91;LastName], &#91;Salary])\n<span class=\"hljs-keyword\">OUTPUT<\/span> INSERTED.&#91;<span class=\"hljs-keyword\">Id<\/span>]\n<span class=\"hljs-keyword\">VALUES<\/span> (@p0, @p1, @p2, @p3, @p4);<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-20\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">SQL (Structured Query Language)<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">sql<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-21\" data-shcb-language-name=\"CSS\" data-shcb-language-slug=\"css\"><span><code class=\"hljs language-css\"><span class=\"hljs-selector-tag\">Id<\/span>          <span class=\"hljs-selector-tag\">FirstName<\/span>  <span class=\"hljs-selector-tag\">LastName<\/span>   <span class=\"hljs-selector-tag\">Salary<\/span>                         <span class=\"hljs-selector-tag\">JoinedDate<\/span>                  <span class=\"hljs-selector-tag\">DepartmentId<\/span>\n<span class=\"hljs-selector-tag\">-----------<\/span> <span class=\"hljs-selector-tag\">----------<\/span> <span class=\"hljs-selector-tag\">----------<\/span> <span class=\"hljs-selector-tag\">------------------------------<\/span> <span class=\"hljs-selector-tag\">---------------------------<\/span> <span class=\"hljs-selector-tag\">------------<\/span>\n1           <span class=\"hljs-selector-tag\">John<\/span>       <span class=\"hljs-selector-tag\">Doe<\/span>        120000<span class=\"hljs-selector-class\">.00<\/span>                      2023<span class=\"hljs-selector-tag\">-01-05<\/span> 00<span class=\"hljs-selector-pseudo\">:00<\/span><span class=\"hljs-selector-pseudo\">:00.0000000<\/span> 1\n2           <span class=\"hljs-selector-tag\">Jane<\/span>       <span class=\"hljs-selector-tag\">Doe<\/span>        95000<span class=\"hljs-selector-class\">.00<\/span>                       2023<span class=\"hljs-selector-tag\">-01-05<\/span> 00<span class=\"hljs-selector-pseudo\">:00<\/span><span class=\"hljs-selector-pseudo\">:00.0000000<\/span> 6\n3           <span class=\"hljs-selector-tag\">Bob<\/span>        <span class=\"hljs-selector-tag\">Climio<\/span>     90000<span class=\"hljs-selector-class\">.00<\/span>                       2023<span class=\"hljs-selector-tag\">-01-05<\/span> 00<span class=\"hljs-selector-pseudo\">:00<\/span><span class=\"hljs-selector-pseudo\">:00.0000000<\/span> 1\n4           <span class=\"hljs-selector-tag\">Alice<\/span>      <span class=\"hljs-selector-tag\">Smith<\/span>      70000<span class=\"hljs-selector-class\">.00<\/span>                       2023<span class=\"hljs-selector-tag\">-01-05<\/span> 00<span class=\"hljs-selector-pseudo\">:00<\/span><span class=\"hljs-selector-pseudo\">:00.0000000<\/span> 6<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-21\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">CSS<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">css<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Second, insert multiple rows into the <code>Skills<\/code> table using the <code>MERGE<\/code> statement and return the inserted ids:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-22\" data-shcb-language-name=\"SQL (Structured Query Language)\" data-shcb-language-slug=\"sql\"><span><code class=\"hljs language-sql\">\n<span class=\"hljs-keyword\">MERGE<\/span> &#91;Skills] <span class=\"hljs-keyword\">USING<\/span> (\n<span class=\"hljs-keyword\">VALUES<\/span> (@p5, <span class=\"hljs-number\">0<\/span>),\n(@p6, <span class=\"hljs-number\">1<\/span>)) <span class=\"hljs-keyword\">AS<\/span> i (&#91;Title], _Position) <span class=\"hljs-keyword\">ON<\/span> <span class=\"hljs-number\">1<\/span>=<span class=\"hljs-number\">0<\/span>\n<span class=\"hljs-keyword\">WHEN<\/span> <span class=\"hljs-keyword\">NOT<\/span> <span class=\"hljs-keyword\">MATCHED<\/span> <span class=\"hljs-keyword\">THEN<\/span>\n<span class=\"hljs-keyword\">INSERT<\/span> (&#91;Title])\n<span class=\"hljs-keyword\">VALUES<\/span> (i.&#91;Title])\n<span class=\"hljs-keyword\">OUTPUT<\/span> INSERTED.&#91;<span class=\"hljs-keyword\">Id<\/span>], i._Position;<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-22\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">SQL (Structured Query Language)<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">sql<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-23\" data-shcb-language-name=\"plaintext\" data-shcb-language-slug=\"plaintext\"><span><code class=\"hljs language-plaintext\">Id          Title\n----------- -------------------------\n1           C# Programming\n2           ASP.NET Core<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-23\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">plaintext<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">plaintext<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Third, insert multiple rows into the <code>EmployeeSkill<\/code> table using the <code>INSERT<\/code> statement:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-24\" data-shcb-language-name=\"SQL (Structured Query Language)\" data-shcb-language-slug=\"sql\"><span><code class=\"hljs language-sql\"><span class=\"hljs-comment\">--  &#91;Parameters=&#91;@p7='4', @p8='1', @p9='4', @p10='2'], CommandType='Text', CommandTimeout='30']<\/span>\n<span class=\"hljs-keyword\">SET<\/span> IMPLICIT_TRANSACTIONS <span class=\"hljs-keyword\">OFF<\/span>;\n<span class=\"hljs-keyword\">SET<\/span> NOCOUNT <span class=\"hljs-keyword\">ON<\/span>;\n<span class=\"hljs-keyword\">INSERT<\/span> <span class=\"hljs-keyword\">INTO<\/span> &#91;EmployeeSkill] (&#91;EmployeesId], &#91;SkillsId])\n<span class=\"hljs-keyword\">VALUES<\/span> (@p7, @p8),\n(@p9, @p10);<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-24\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">SQL (Structured Query Language)<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">sql<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-25\" data-shcb-language-name=\"plaintext\" data-shcb-language-slug=\"plaintext\"><span><code class=\"hljs language-plaintext\">EmployeesId SkillsId\n----------- -----------\n4           1\n4           2<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-25\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">plaintext<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">plaintext<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h2 class=\"wp-block-heading\">Summary<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Create a new entity, add it to the corresponding <code>DbSet<\/code>, and call the <code>SaveChanges()<\/code> to insert a new row into the corresponding table.<\/li>\n<\/ul>\n<div class=\"helpful-block-content\" data-title=\"\">\n\t<header>\n\t\t<div class=\"wth-question\">Was this tutorial helpful ?<\/div>\n\t\t<div class=\"wth-thumbs\">\n\t\t\t<button\n\t\t\t\tdata-post=\"2157\"\n\t\t\t\tdata-post-url=\"https:\/\/www.csharptutorial.net\/entity-framework-core-tutorial\/ef-core-insert\/\"\n\t\t\t\tdata-post-title=\"EF Core Insert\"\n\t\t\t\tdata-response=\"1\"\n\t\t\t\tclass=\"wth-btn-rounded wth-yes-btn\"\n\t\t\t>\n\t\t\t\t<svg\n\t\t\t\t\txmlns=\"http:\/\/www.w3.org\/2000\/svg\"\n\t\t\t\t\tviewBox=\"0 0 24 24\"\n\t\t\t\t\tfill=\"none\"\n\t\t\t\t\tstroke=\"currentColor\"\n\t\t\t\t\tstroke-width=\"2\"\n\t\t\t\t\tstroke-linecap=\"round\"\n\t\t\t\t\tstroke-linejoin=\"round\"\n\t\t\t\t\tclass=\"feather feather-thumbs-up block w-full h-full\"\n\t\t\t\t>\n\t\t\t\t\t<path\n\t\t\t\t\t\td=\"M14 9V5a3 3 0 0 0-3-3l-4 9v11h11.28a2 2 0 0 0 2-1.7l1.38-9a2 2 0 0 0-2-2.3zM7 22H4a2 2 0 0 1-2-2v-7a2 2 0 0 1 2-2h3\"\n\t\t\t\t\t><\/path>\n\t\t\t\t<\/svg>\n\t\t\t\t<span class=\"sr-only\"> Yes <\/span>\n\t\t\t<\/button>\n\n\t\t\t<button\n\t\t\t\tdata-response=\"0\"\n\t\t\t\tdata-post=\"2157\"\n\t\t\t\tdata-post-url=\"https:\/\/www.csharptutorial.net\/entity-framework-core-tutorial\/ef-core-insert\/\"\n\t\t\t\tdata-post-title=\"EF Core Insert\"\n\t\t\t\tclass=\"wth-btn-rounded wth-no-btn\"\n\t\t\t>\n\t\t\t\t<svg\n\t\t\t\t\txmlns=\"http:\/\/www.w3.org\/2000\/svg\"\n\t\t\t\t\tviewBox=\"0 0 24 24\"\n\t\t\t\t\tfill=\"none\"\n\t\t\t\t\tstroke=\"currentColor\"\n\t\t\t\t\tstroke-width=\"2\"\n\t\t\t\t\tstroke-linecap=\"round\"\n\t\t\t\t\tstroke-linejoin=\"round\"\n\t\t\t\t>\n\t\t\t\t\t<path\n\t\t\t\t\t\td=\"M10 15v4a3 3 0 0 0 3 3l4-9V2H5.72a2 2 0 0 0-2 1.7l-1.38 9a2 2 0 0 0 2 2.3zm7-13h2.67A2.31 2.31 0 0 1 22 4v7a2.31 2.31 0 0 1-2.33 2H17\"\n\t\t\t\t\t><\/path>\n\t\t\t\t<\/svg>\n\t\t\t\t<span class=\"sr-only\"> No <\/span>\n\t\t\t<\/button>\n\t\t<\/div>\n\t<\/header>\n\n\t<div class=\"wth-form hidden\">\n\t\t<div class=\"wth-form-wrapper\">\n\t\t\t<div class=\"wth-title\"><\/div>\n\t\t\t\n\t\t\t<textarea class=\"wth-message\"><\/textarea>\n\n\t\t\t<button class=\"btn btn-primary wth-btn-submit\">Send<\/button>\n\t\t\t<button class=\"btn wth-btn-cancel\">Cancel<\/button>\n\t\t\n\t\t<\/div>\n\t<\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Summary: in this tutorial, you will learn how to use the EF Core SaveChanges() method to insert rows into tables. Setting up an EF Core project We&#8217;ll use the following data model which includes Department, Employee, EmployeeProfile, and Skill: First, download the HR project: Download the HR project Second, run the Add-Migration command in the [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":1970,"menu_order":16,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-2157","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.csharptutorial.net\/wp-json\/wp\/v2\/pages\/2157","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.csharptutorial.net\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.csharptutorial.net\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.csharptutorial.net\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.csharptutorial.net\/wp-json\/wp\/v2\/comments?post=2157"}],"version-history":[{"count":5,"href":"https:\/\/www.csharptutorial.net\/wp-json\/wp\/v2\/pages\/2157\/revisions"}],"predecessor-version":[{"id":2252,"href":"https:\/\/www.csharptutorial.net\/wp-json\/wp\/v2\/pages\/2157\/revisions\/2252"}],"up":[{"embeddable":true,"href":"https:\/\/www.csharptutorial.net\/wp-json\/wp\/v2\/pages\/1970"}],"wp:attachment":[{"href":"https:\/\/www.csharptutorial.net\/wp-json\/wp\/v2\/media?parent=2157"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}