﻿
{"id":10891,"date":"2019-05-09T14:45:35","date_gmt":"2019-05-09T14:45:35","guid":{"rendered":"https:\/\/www.gencayyildiz.com\/blog\/?p=10891"},"modified":"2019-05-09T14:45:35","modified_gmt":"2019-05-09T14:45:35","slug":"asp-net-core-uygulamalarinda-database-first-yaklasimi-ile-mevcut-veritabaninda-calisma","status":"publish","type":"post","link":"https:\/\/www.gencayyildiz.com\/blog\/asp-net-core-uygulamalarinda-database-first-yaklasimi-ile-mevcut-veritabaninda-calisma\/","title":{"rendered":"Asp.NET Core Uygulamalar\u0131nda Database First Yakla\u015f\u0131m\u0131 \u0130le Mevcut Veritaban\u0131nda \u00c7al\u0131\u015fma"},"content":{"rendered":"<div id=\"fb-root\"><\/div>\n<p>Merhaba,<\/p>\n<p>Bu g\u00fcne kadar Asp.NET Core \u00fczerine kaleme alm\u0131\u015f oldu\u011fumuz bir\u00e7ok makalede Entity Framework Core yap\u0131lanmas\u0131n\u0131n Code First yakla\u015f\u0131m\u0131 \u00fczerine i\u00e7eriklerimizi olu\u015fturmu\u015f bulunmaktay\u0131z. Bu i\u00e7eri\u011fimizde ise Asp.NET Core uygulamalar\u0131nda, Entity Framework Core &#8211; Database First yakla\u015f\u0131m\u0131n\u0131n nas\u0131l kullan\u0131laca\u011f\u0131n\u0131 ve b\u00f6ylece mevcut olan veritabanlar\u0131n\u0131 kullanarak \u00e7al\u0131\u015fmalar\u0131m\u0131z\u0131 nas\u0131l ger\u00e7ekle\u015ftirebilece\u011fimizi inceleyece\u011fiz.<\/p>\n<h4>\u0130lk Olarak<\/h4>\n<p>Anlat\u0131mlar\u0131m\u0131z\u0131 tatbik etmek \u00fczere hali haz\u0131rda bir Asp.NET Core MVC uygulamas\u0131 \u00fczerinden seyredece\u011fiz ve makale s\u00fcrecinde yapaca\u011f\u0131m\u0131z \u00f6rneklendirmede istifade etmek i\u00e7in Northwind veritaban\u0131n\u0131 kullanaca\u011f\u0131z.<\/p>\n<h4>Microsoft.EntityFrameworkCore.SqlServer Kurulumu<\/h4>\n<p>Entity Framework Core &#8211; Database First yakla\u015f\u0131m\u0131n\u0131 kullanabilmemiz i\u00e7in <a href=\"https:\/\/www.nuget.org\/packages\/Microsoft.EntityFrameworkCore.SqlServer\/\" rel=\"noopener noreferrer\" target=\"_blank\">Microsoft.EntityFrameworkCore.SqlServer<\/a> k\u00fct\u00fcphanesini projemize y\u00fcklememiz gerekmektedir. Bunun i\u00e7in a\u015fa\u011f\u0131daki kodu \u00e7al\u0131\u015ft\u0131rarak .NET CLI yard\u0131m\u0131yla ilgili k\u00fct\u00fcphaneyi projeye ekleyebiliriz. <span style=\"font-size:10px;color:orange\"><strong>ilgili k\u00fct\u00fcphane makaleyi kaleme ald\u0131\u011f\u0131m tarihte 2.2.4 versiyonundad\u0131r.<\/strong><\/span><\/p>\n<pre class=\"brush: plain; title: ; notranslate\" title=\"\">\r\ndotnet add package Microsoft.EntityFrameworkCore.SqlServer --version 2.2.4\r\n<\/pre>\n<p><a href=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2019\/05\/Asp.NET-Core-Uygulamalar\u0131nda-Database-First-Yakla\u015f\u0131m\u0131-\u0130le-Mevcut-Veritaban\u0131nda-\u00c7al\u0131\u015fma.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2019\/05\/Asp.NET-Core-Uygulamalar\u0131nda-Database-First-Yakla\u015f\u0131m\u0131-\u0130le-Mevcut-Veritaban\u0131nda-\u00c7al\u0131\u015fma.png\" alt=\"Asp.NET Core Uygulamalar\u0131nda Database First Yakla\u015f\u0131m\u0131 \u0130le Mevcut Veritaban\u0131nda \u00c7al\u0131\u015fma\" width=\"1840\" height=\"217\" class=\"aligncenter size-full wp-image-10899\" srcset=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2019\/05\/Asp.NET-Core-Uygulamalar\u0131nda-Database-First-Yakla\u015f\u0131m\u0131-\u0130le-Mevcut-Veritaban\u0131nda-\u00c7al\u0131\u015fma.png 1840w, https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2019\/05\/Asp.NET-Core-Uygulamalar\u0131nda-Database-First-Yakla\u015f\u0131m\u0131-\u0130le-Mevcut-Veritaban\u0131nda-\u00c7al\u0131\u015fma-300x35.png 300w, https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2019\/05\/Asp.NET-Core-Uygulamalar\u0131nda-Database-First-Yakla\u015f\u0131m\u0131-\u0130le-Mevcut-Veritaban\u0131nda-\u00c7al\u0131\u015fma-768x91.png 768w, https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2019\/05\/Asp.NET-Core-Uygulamalar\u0131nda-Database-First-Yakla\u015f\u0131m\u0131-\u0130le-Mevcut-Veritaban\u0131nda-\u00c7al\u0131\u015fma-1024x121.png 1024w\" sizes=\"auto, (max-width: 1840px) 100vw, 1840px\" \/><\/a><\/p>\n<h4>Database First \u0130le Haz\u0131r Veritaban\u0131n\u0131 Projeye \u00c7ekelim<\/h4>\n<p>Bu ad\u0131ma kadar yap\u0131lan i\u015flemlerden sonra art\u0131k Database First y\u00f6ntemini kullanarak SQL Server&#8217;da ki veritaban\u0131n\u0131 projemize include etmek i\u00e7in haz\u0131r\u0131z.<\/p>\n<p>Yap\u0131lmas\u0131 gereken &#8220;Package Manager Console&#8221; penceresini a\u00e7arak a\u015fa\u011f\u0131daki direktifi \u00e7al\u0131\u015ft\u0131rmakt\u0131r.<\/p>\n<pre class=\"brush: plain; title: ; notranslate\" title=\"\">\r\nScaffold-DbContext &quot;Server=.;Database=Northwind;Trusted_Connection=True;&quot; Microsoft.EntityFrameworkCore.SqlServer -OutputDir Models\r\n<\/pre>\n<p>\u0130lgili direktifi \u00e7al\u0131\u015ft\u0131rd\u0131\u011f\u0131m\u0131z zaman providerdaki veritaban\u0131 projeye ta\u015f\u0131nmakta ve a\u015fa\u011f\u0131daki ekran g\u00f6r\u00fcnt\u00fcs\u00fcnde oldu\u011fu gibi olu\u015fturulan context s\u0131n\u0131f\u0131 direkt olarak a\u00e7\u0131lmaktad\u0131r.<br \/>\n<a href=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2019\/05\/Asp.NET-Core-Uygulamalar\u0131nda-Database-First-Yakla\u015f\u0131m\u0131-\u0130le-Mevcut-Veritaban\u0131nda-\u00c7al\u0131\u015fma-1.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2019\/05\/Asp.NET-Core-Uygulamalar\u0131nda-Database-First-Yakla\u015f\u0131m\u0131-\u0130le-Mevcut-Veritaban\u0131nda-\u00c7al\u0131\u015fma-1.png\" alt=\"Asp.NET Core Uygulamalar\u0131nda Database First Yakla\u015f\u0131m\u0131 \u0130le Mevcut Veritaban\u0131nda \u00c7al\u0131\u015fma\" width=\"1798\" height=\"944\" class=\"aligncenter size-full wp-image-10906\" srcset=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2019\/05\/Asp.NET-Core-Uygulamalar\u0131nda-Database-First-Yakla\u015f\u0131m\u0131-\u0130le-Mevcut-Veritaban\u0131nda-\u00c7al\u0131\u015fma-1.png 1798w, https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2019\/05\/Asp.NET-Core-Uygulamalar\u0131nda-Database-First-Yakla\u015f\u0131m\u0131-\u0130le-Mevcut-Veritaban\u0131nda-\u00c7al\u0131\u015fma-1-300x158.png 300w, https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2019\/05\/Asp.NET-Core-Uygulamalar\u0131nda-Database-First-Yakla\u015f\u0131m\u0131-\u0130le-Mevcut-Veritaban\u0131nda-\u00c7al\u0131\u015fma-1-768x403.png 768w, https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2019\/05\/Asp.NET-Core-Uygulamalar\u0131nda-Database-First-Yakla\u015f\u0131m\u0131-\u0130le-Mevcut-Veritaban\u0131nda-\u00c7al\u0131\u015fma-1-1024x538.png 1024w\" sizes=\"auto, (max-width: 1798px) 100vw, 1798px\" \/><\/a><\/p>\n<p>Ekran g\u00f6r\u00fcnt\u00fcs\u00fcne tekrar bak\u0131p Solution Explorer penceresindeki dosyalarda \u015f\u00f6yle bi g\u00f6z\u00fcm\u00fcz\u00fc gezdirirsek g\u00f6rece\u011fiz ki entityler olu\u015fturulmu\u015f ve context s\u0131n\u0131f\u0131da aralar\u0131na eklenmi\u015ftir. Burada dikkat edilmesi gereken nokta \u015fudur ki; standart Entity Framework&#8217;te oldu\u011fu gibi gerekli konfig\u00fcrasyon ayarlar\u0131 sa\u011flayan ve tablolar aras\u0131 ili\u015fkileri g\u00f6steren bir &#8220;.edmx&#8221; uzant\u0131l\u0131 dosya bulunmamakta, direkt olarak s\u0131n\u0131fsal bazl\u0131 nesneler \u00fczerinden i\u015flemler ger\u00e7ekle\u015ftirilmektedir.<\/p>\n<p>Ayriyetten veritaban\u0131 g\u00fcncellemelerinde son durumu tekrar \u00e7ekebilmek i\u00e7in ilgili direktifi <em>-force<\/em> parametresi ile vermemiz yeterlidir.<\/p>\n<pre class=\"brush: plain; title: ; notranslate\" title=\"\">\r\nScaffold-DbContext &quot;Server=.;Database=Northwind;Trusted_Connection=True;&quot; Microsoft.EntityFrameworkCore.SqlServer -OutputDir Models -force\r\n<\/pre>\n<h4>Context&#8217;i Dependency Injection \u0130le Register Edelim<\/h4>\n<p>T\u00fcm bu i\u015flemlerden sonra s\u0131ra Dependency Injection ile context nesnemizi uygulamaya register etmeye gelmi\u015f bulunmaktad\u0131r. Asl\u0131nda bu \u00f6nceki makalelerimizden bildi\u011fimiz ve uygulad\u0131\u011f\u0131m\u0131z bir y\u00f6ntemdir. <strong style=\"color:orange;font-size:9px;\">\u0130lgili makaleler i\u00e7in; <a href=\"https:\/\/www.gencayyildiz.com\/blog\/asp-net-core-2-mvcde-dependency-injection\/\" rel=\"noopener noreferrer\" target=\"_blank\">Asp.NET Core 2 MVC\u2019de Dependency Injection<\/a>, <a href=\"https:\/\/www.gencayyildiz.com\/blog\/asp-net-core-2-mvcde-migrations-ile-veritabani-islemleri\/\" rel=\"noopener noreferrer\" target=\"_blank\">Asp.NET Core 2 MVC\u2019de Migrations \u0130le Veritaban\u0131 \u0130\u015flemleri<\/a><\/strong><\/p>\n<p>Dependency Injection ile context s\u0131n\u0131f\u0131m\u0131z\u0131 uygulamaya register edebilmek i\u00e7in Startup dosyas\u0131 i\u00e7erisindeki &#8220;ConfigureServices&#8221; metodunda a\u015fa\u011f\u0131daki kodlar\u0131 yaz\u0131yoruz.<\/p>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\n    public class Startup\r\n    {\r\n        public void ConfigureServices(IServiceCollection services)\r\n        {\r\n            services.AddDbContext&lt;NorthwindContext&gt;(_ =&gt; _.UseSqlServer(&quot;Server=.;Database=Northwind;Trusted_Connection=True;&quot;));\r\n            services.AddMvc();\r\n        }\r\n\r\n        public void Configure(IApplicationBuilder app, IHostingEnvironment env)\r\n        {\r\n            if (env.IsDevelopment())\r\n                app.UseDeveloperExceptionPage();\r\n\r\n            app.UseMvc(_ =&gt; _.MapRoute(&quot;Default&quot;, &quot;{controller=Home}\/{action=Index}\/{id?}&quot;));\r\n        }\r\n    }\r\n<\/pre>\n<h4>Kullan\u0131m\u0131<\/h4>\n<p>Art\u0131k bu noktadan itibaren geriye context nesnesini Dependency Injection ile talep ederek ilgili controllerda gerekli veritaban\u0131 i\u015flemlerini ger\u00e7ekle\u015ftirmek kalm\u0131\u015ft\u0131r.<br \/>\n<a href=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2019\/05\/Asp.NET-Core-Uygulamalar\u0131nda-Database-First-Yakla\u015f\u0131m\u0131-\u0130le-Mevcut-Veritaban\u0131nda-\u00c7al\u0131\u015fma-2.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2019\/05\/Asp.NET-Core-Uygulamalar\u0131nda-Database-First-Yakla\u015f\u0131m\u0131-\u0130le-Mevcut-Veritaban\u0131nda-\u00c7al\u0131\u015fma-2.png\" alt=\"Asp.NET Core Uygulamalar\u0131nda Database First Yakla\u015f\u0131m\u0131 \u0130le Mevcut Veritaban\u0131nda \u00c7al\u0131\u015fma\" width=\"666\" height=\"606\" class=\"aligncenter size-full wp-image-10915\" srcset=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2019\/05\/Asp.NET-Core-Uygulamalar\u0131nda-Database-First-Yakla\u015f\u0131m\u0131-\u0130le-Mevcut-Veritaban\u0131nda-\u00c7al\u0131\u015fma-2.png 666w, https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2019\/05\/Asp.NET-Core-Uygulamalar\u0131nda-Database-First-Yakla\u015f\u0131m\u0131-\u0130le-Mevcut-Veritaban\u0131nda-\u00c7al\u0131\u015fma-2-300x273.png 300w\" sizes=\"auto, (max-width: 666px) 100vw, 666px\" \/><\/a><\/p>\n<p>Ve evet&#8230; Yukar\u0131daki ekran g\u00f6r\u00fcnt\u00fcs\u00fcnde oldu\u011fu gibi Database First yakla\u015f\u0131m\u0131n\u0131 kullanarak Asp.NET Core uygulamalar\u0131nda mevcut veritaban\u0131m\u0131z \u00fczerinde i\u015flemlerimizi ger\u00e7ekle\u015ftirmi\u015f bulunmaktay\u0131z.<\/p>\n<p>\u0130\u015fte bu kadar basit \ud83d\ude42<\/p>\n<p>\u0130lgilenenlerin faydalanmas\u0131 dile\u011fiyle&#8230;<br \/>\nSonraki yaz\u0131lar\u0131mda g\u00f6r\u00fc\u015fmek \u00fczere&#8230;<br \/>\n\u0130yi \u00e7al\u0131\u015fmalar&#8230;<\/p>\n<!-- AddThis Advanced Settings generic via filter on the_content --><!-- AddThis Share Buttons generic via filter on the_content -->","protected":false},"excerpt":{"rendered":"<p>Merhaba, Bu g\u00fcne kadar Asp.NET Core \u00fczerine kaleme alm\u0131\u015f oldu\u011fumuz bir\u00e7ok makalede Entity Framework Core yap\u0131lanmas\u0131n\u0131n Code First yakla\u015f\u0131m\u0131 \u00fczerine i\u00e7eriklerimizi olu\u015fturmu\u015f bulunmaktay\u0131z. Bu i\u00e7eri\u011fimizde ise Asp.NET Core uygulamalar\u0131nda, Entity Framework Core &#8211; Database&#46;&#46;&#46;<!-- AddThis Advanced Settings generic via filter on get_the_excerpt --><!-- AddThis Share Buttons generic via filter on get_the_excerpt --><\/p>\n","protected":false},"author":1,"featured_media":9596,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[2739,2668,2656,2811,2832],"tags":[2853,2679,953,2851,2850,2852],"class_list":["post-10891","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-net-core","category-asp-net-core-2","category-asp-net-core-2-mvc","category-asp-net-core-2-1","category-asp-net-core-2-2","tag-net-core-database-first","tag-asp-net-core","tag-database-first","tag-ef-core","tag-entity-framework-core","tag-entity-framework-core-database-first"],"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/posts\/10891","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/comments?post=10891"}],"version-history":[{"count":26,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/posts\/10891\/revisions"}],"predecessor-version":[{"id":10922,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/posts\/10891\/revisions\/10922"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/media\/9596"}],"wp:attachment":[{"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/media?parent=10891"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/categories?post=10891"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/tags?post=10891"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}