<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>T-SQL arşivleri - Dinamik Network</title>
	<atom:link href="https://dinamiknetwork.com/k/yazilim/diller/t-sql/feed/" rel="self" type="application/rss+xml" />
	<link>https://dinamiknetwork.com/k/yazilim/diller/t-sql/</link>
	<description>Bilişim Dünyasına Profesyonel Yaklaşım</description>
	<lastBuildDate>Fri, 25 Aug 2023 13:28:58 +0000</lastBuildDate>
	<language>tr</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=5.8.12</generator>

<image>
	<url>https://dinamiknetwork.com/wp-content/uploads/2020/01/cropped-ikon-1-1-32x32.png</url>
	<title>T-SQL arşivleri - Dinamik Network</title>
	<link>https://dinamiknetwork.com/k/yazilim/diller/t-sql/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Veritabanı ve Okunaklı Kodlama İçin Tavsiyeler</title>
		<link>https://dinamiknetwork.com/veritabani-ve-okunakli-kodlama-icin-tavsiyeler/</link>
					<comments>https://dinamiknetwork.com/veritabani-ve-okunakli-kodlama-icin-tavsiyeler/#comments</comments>
		
		<dc:creator><![CDATA[Mustafa Bükülmez]]></dc:creator>
		<pubDate>Thu, 02 Apr 2020 11:44:12 +0000</pubDate>
				<category><![CDATA[T-SQL]]></category>
		<category><![CDATA[Incorrext Syntax Near]]></category>
		<category><![CDATA[Kolonlarda Tablo İşaretçileri]]></category>
		<category><![CDATA[okunaklı kod]]></category>
		<category><![CDATA[Okunaklı Kod ve Sorgu]]></category>
		<category><![CDATA[Otomatik Query Oluşturma]]></category>
		<category><![CDATA[Veritabanı ve Okunaklı Kodlama]]></category>
		<category><![CDATA[Yazılımcılara tavsiyeler]]></category>
		<guid isPermaLink="false">https://dinamiknetwork.com/?p=1393</guid>

					<description><![CDATA[<p>Merhabalar. Selamlar. Bu yazımda Veritabanı ve Okunaklı Kodlama İçin Tavsiyeler konusundan bahsetmek istiyorum. Biliyoruz ki herkes Entity Framework kullanmıyor. Bende o kullanmayanlardan biriyim. Projelerimin hepsinde sql&#46;&#46;&#46;</p>
<p>The post <a rel="nofollow" href="https://dinamiknetwork.com/veritabani-ve-okunakli-kodlama-icin-tavsiyeler/">Veritabanı ve Okunaklı Kodlama İçin Tavsiyeler</a> appeared first on <a rel="nofollow" href="https://dinamiknetwork.com">Dinamik Network</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Merhabalar. Selamlar. Bu yazımda <strong>Veritabanı ve Okunaklı Kodlama İçin Tavsiyeler </strong>konusundan bahsetmek istiyorum. Biliyoruz ki herkes Entity Framework kullanmıyor. Bende o kullanmayanlardan biriyim. Projelerimin hepsinde sql tablolarını manuel modeller ve sorguları manuel yazarım. Benim gibi çalışan arkadaşlar için bir kaç tavsiye vermek amacı ile bu yazıyı yazmak istedim.</p>
<p>Başlıkta SQL yazmasına takılmayın. Bu tavsiyelerim her veritabanı için geçerli olacaktır.</p>
<p>&nbsp;</p>
<h2>Veritabanı ve Okunaklı Kodlama İçin Tavsiyeler</h2>
<p>Projelerimizde veritabanı olmazsa olmaz gibi bir şeydir. Her projemiz bir şeyleri takip etme (stok cari vs. vs.) amacı gütmese de yine de bir takım verileri saklamak için veritabanı kullanmak zorunda kalıyoruz. Bu veri tabanının ne olduğu aslında önemli değil. Biz programcılar için bir noktalama işaretinin bile çalışmayı engelleyecek bir öneme sahip olduğu aşikar. Bu sebeple yazdığımız sorgularda (query) bu noktalama işaretleri yüzünden çok fazla hata yapabiliyoruz.</p>
<p>Bu vereceğim tavsiyeler işte böylesi küçük sorunlara karşı daha hızlı bir çözüm olması ve okunaklı olması amacı güdüyor.</p>
<pre class="prettyprint lang-sql" data-start-line="1" data-visibility="visible" data-highlight="" data-caption="">Incorrext Syntax Near ","</pre>
<p>Gibi hayattan soğutan bu hatalarla daha az nasıl karşılabiliriz? Nasıl minimuma indirebiliriz?</p>
<h3></h3>
<h3><strong>Otomatik Query Oluşturma</strong></h3>
<p>Diğer veritabanı programlarını bilmiyorum ama <strong>SQL Management Studio</strong>&#8216;da bu işlem var ve çok sık kullanırım.</p>
<p><strong>SQL Management Studio</strong> &#8216;da bir tablo üzerinde sağ tık yapın ve <em>&#8220;Script Table As&#8221; &gt; &#8220;INSERT To&#8221; &gt; &#8220;New Query Editor Window&#8221;</em> deyin. Açılan Query sayfasında o tabloya bir insert yapmak için gerekli query otomatik oluşmuş oluyor. Query&#8217;i kopyalıyoruz ve kod sayfamıza yapıştırıyoruz.</p>
<p>Her satırın başına ( +&#8221; ) ve sonuna ( &#8221; ) ekliyoruz. Sorgumuzu bir string değişkene atıyoruz ve gerekli yerleri düzeltiyoruz. Yani VALUES kısmından sonraki satırlara verileri alacağımız nesneleri yazıyoruz.</p>
<p>Genelde kullanılan şekli aşağıdaki gibidir değil mi? Ne kadarda okunaksız. Birde burada 60, 70 kolon olduğunu ve böyle uzayıp gittiğini düşünün. Ne kadar zorlanırsınız? Arada bir virgülün eksik olduğunu düşünün&#8230; Ya da fazla olduğunu&#8230;</p>
<pre class="prettyprint lang-sql" data-start-line="1" data-visibility="visible" data-highlight="" data-caption="">INSERT INTO [dbo].[Kullanicilar]([ku_kodu],[ku_adi],[ku_sifre],[ku_yetki])
     VALUES ('5','Mustafa BÜKÜLMEZ','123465','Administrator')</pre>
<p>Şimdi yukarıda bahsettiğim şeyi yapalım ve görelim&#8230;</p>
<pre class="prettyprint lang-sql" data-start-line="1" data-visibility="visible" data-highlight="" data-caption="">INSERT INTO [dbo].[Kullanicilar]
 	 ([ku_kodu]
	 ,[ku_adi]
	 ,[ku_sifre]
	 ,[ku_yetki])
VALUES (
	 '5'
	 ,'Mustafa BÜKÜLMEZ'
	 ,'123465'
	 ,'Administrator')</pre>
<p>Böyle bir yazım şeklinde eksik veya fazla virgülü neredeyse anında bulabilirsiniz değil mi? Ama burada virgülleri kolon adlarının sol tarafında olmasına dikkat edin. Otomatik olarak solda geliyor ama bazen üzerinde düzenleme yapmamız gerekebiliyor. Sağ tarafında olursa pek bir anlamı kalmıyor.</p>
<h3></h3>
<h3><strong>Okunaklı Kod ve Sorgu</strong></h3>
<p>Benim kullanım şeklim bir adım daha ileri gidersek şöyle oluyor.</p>
<pre class="prettyprint lang-sql" data-start-line="1" data-visibility="visible" data-highlight="" data-caption="">INSERT INTO [dbo].[Kullanicilar]
           ([ku_kodu]
           ,[ku_adi]
           ,[ku_sifre]
           ,[ku_yetki])
     VALUES
           ('5' -- &lt;ku_kodu, nvarchar(50),&gt;
           ,'Mustafa BÜKÜLMEZ' --&lt;ku_adi, nvarchar(50),&gt;
           ,'123465' --&lt;ku_sifre, nvarchar(50),&gt;
           ,'Administrator' ) -- &lt;ku_yetki, nvarchar(50),&gt;)</pre>
<p>Bu şekilde yaptığımda hangi satırda hangi kolon bilgisi var ve olması gerekeni görebiliyorum. Üst kısım ile karşılaştırıp eksik kolon var mı görebiliyorum. Burada dikkat edilmesi gereken nokta son satırdaki parantezi unutmamak.. (&#8211;) yaptıktan sonra parantezde yorum olarak kalıyor ve parantez hatası alıyoruz. Bu yöntemi her zaman kullanmıyorum. Çok fazla kolonu olan tablolarda kullanıyorum.</p>
<p>Ayrıca genellikle bu yorum olarak işaretleme işlemini C# tarafında yapıyorum. ilgili texbox&#8217;u yazdıktan sonra kolon adı ve veri tipi kısmından önce // kullanıyorum.</p>
<p>Aynı şekilde Select, Update gibi tüm işlemler için gereken sorguları alabiliyoruz.</p>
<p>Ben C# kullandığım için Visual Studio&#8217;da şöyle görünüyor.</p>
<pre class="prettyprint lang-csharp" data-start-line="1" data-visibility="visible" data-highlight="" data-caption="">                comm.CommandText =""
                        + "  INSERT INTO [dbo].[Kullanicilar] "
                        + "       ( ku_kodu " 
                        + "       , ku_adi "
                        + "       , ku_sifre "
                        + "       , ku_yetki) "
                        + "  VALUES "
                        + "       ( '" + txt_kod.Text + "' "
                        + "       , '" + txt_adi.Text + "' "
                        + "       , '" + txt_sifre.Text + "' "
                        + "       , '" + cmb_yetki.Text + "'    )";</pre>
<p><em>Yaşadığım şehir olan Kahramanmaraş&#8217;ta &#8220;İp Gibi&#8221; (Gergin bir ip gibi dümdüz) diye bir deyim vardır.  Tam uyuyor. 😀 Bu konuda ilk zamanlarda çok sıkıntı çektiğim için takıntılı oldum. Her virgül ve + aynı hizanda olmazsa rahat edemiyorum. 🙂 Mesleki deformasyon gibi bir şey. 🙂 </em></p>
<p>NOT: Buradaki yazıda bir <a href="https://dinamiknetwork.com/sql-server-ile-c-entity-class-olusturma/" target="_blank" rel="noopener noreferrer">SQL &#8216;de Entity Class Oluşturma</a> dersini de inceleyebilirsiniz. Tablolarınızı SQL üzerinde bu şekilde modelleyerek ve sorgularınızı yukarıdaki gibi okunaklı olarak yazarak güzel kodlar yazabilirsiniz. 🙂</p>
<p>&nbsp;</p>
<h3><strong>Kolonlarda Tablo İşaretçileri</strong></h3>
<p>Yukarıdaki örneklerde görebiliyorsunuz. Tablomun adı Kullanıcılar. Bu Kullanıcılar tablomdaki her kolon adının başında ( ku_ ) işaretçisi var. Bu işaretçi, bu kolonların Kullanıcılar tablosuna ait olduğunu işaret ediyor. 5, 10 tablolu projelerde önemsemeyebilirsiniz ancak büyük projelerde olması gerektiğini düşünüyorum. Çünkü projeler büyüdükçe, daha karmaşık konulara girmeniz gerekiyor.</p>
<p>Örnek olarak cari, stok, borç, alacak, çek, senet, banka, fatura, tahsilat gibi bir çok modülü olan bir projede bir carinin ekstresi&#8217;ni çıkarmak için kaç tane tabloya dokunmanız gerekiyor. Nasıl bir karmaşıklıkta sorgu yazmanız gerekiyor? Bu tabloların her birinde cari kodunun tutulduğu kolonun adı Cari_Kodu olduğunu varsayalım.</p>
<p>Cari Extresi&#8217;nde birleştirici nokta Cari_Kodu kolonudur. Ancak biz her tabloda aynı adı verdiğimizde, where kısmını veya iç sorguları hazırlarken hangi tablonun Cari_Kodu&#8217;nu, hangi tablonun Cari_Kodu&#8217;na eşitlediğimizi nasıl anlayacağız?</p>
<ul>
<li>Tahsilatlar, tah_Cari_Kodu</li>
<li>Bankalar, ban_Cari_Kodu</li>
<li>Faturalar, fat_Cari_Kodu</li>
<li>Çekler, cek_Cari_Kodu</li>
</ul>
<p>gibi tablo işaretçileri ile kolon adlarını yazdıktan sonra where kısmını hazırlarken en ufak bir şüphe olmadan sorgumuzu yazabilir ve yanlış kolon eşitlemeleri yüzünden saçma sapan sorunlar ile uğraşmak zorunda kalmamış oluruz.</p>
<p>&nbsp;</p>
<h3><strong>Kolon Adları ve Veri Tipleri</strong></h3>
<p>Kolonları hazırlarken, aşırı kısaltma kullanmamaya çalışın. Neden kısaltma kullanmak zorundasın ki? Örnek olarak bir kısaltma kullanalım ve bir kolon adı yazalım. <strong>fat_sat_ack1 </strong>bu kısaltmadan ne anlıyorsunuz? Bu kolonun amacı<em> fatura 1. satır açıklaması</em> idi. Bu kolonu kısaltmalı yazsam ne kaybederim? fat_satir_acikalama1 olarak yazsam ne kaybederim?</p>
<p>Net olarak bilmemekle ve yaptığım deneme ile 60 karakter uzunluğunda bir kolon başlığı yazabildim. Şahsen 60 karakter uzunluğunda da bir kolon başlığı yazmamı gerektirecek etiket düşünemiyorum. Yani aşırı kısaltma yapmadan yazabilecek kadar geniş bir alanımız var.</p>
<p>Aynı şey tablo adları içinde geçerli. Aşırı kısaltmalardan kaçınmamız gerektiğini düşünüyorum. CARI_HESAP_ADRESLERI olarak düşündüğümüz bir tabloyu CARI_HSP_ADR  gibi bir kısaltma ile yazmamızın hiçbir anlamı olmadığını düşünüyorum.</p>
<p>&nbsp;</p>
<hr />
<p><strong>Programlamada SQL Sorgularını Okunaklı Yazmak</strong> yazımda bu kadardı arkadaşlar. Bu sektörde olduğum süre boyunca elde ettiğim tecrübelerden derlenmiş bir kaç nacizane tavsiyemdir. Elimden geldiğinde <strong>okunaklı kod yazma</strong>ya çalışıyorum ve çevremdekilere de <strong>veritabanı ve okunaklı kodlama</strong> konusuna dikkat etmeleri için tavsiyeler vermeye ve almaya çalışıyorum.</p>
<p>Dürüst olacağım, benden başkası anlamasın diye her şeyi aşırı kısaltmış ve şifreleri şeyler yazanlara çok küfür ediyorum.  Bu bir profesyonellik değildir. Tamam, başkasının anlamaması egolarını tatmin edebilir ama başka neye yarar? Böyle insanların arkasından herkes küfür eder. Bu sadece bana özgü bir şey değil.</p>
<p><em><strong>Profesyonellik, başkasının anlayamamasını sağlamak değil, herkesin anlayabilmesini sağlayabilmektir. </strong></em></p>
<p>Herkesin amacı bu olsaydı, internette tek bir kaynak bulamazdık. Bende alacağım tepkilere rağmen bu yazıyı ve bu yoruma zahmetine girmezdim.</p>
<p>Diğer yazılarıma gitmek isterseniz <a href="https://dinamiknetwork.com/author/mustafabukulmez/" target="_blank" rel="noopener noreferrer">buraya</a> tıklayabilirsiniz.</p>
<p>Bol kodlu günler&#8230; ^_^</p>
<p>Sağlıcakla ve takipte kalın.</p>
<p>&nbsp;</p>
<hr />
<p>Bana destek olmak isterseniz <strong><a href="https://www.buymeacoffee.com/mustafabukulmez" target="_blank" rel="noopener">bir kahve ısmarlayabilirsiniz</a></strong> veya <strong><a href="https://linktr.ee/mustafabukulmez" target="_blank" rel="noopener">diğer hesaplarımdan</a></strong> takip edebilirsiniz.</p>
<p>The post <a rel="nofollow" href="https://dinamiknetwork.com/veritabani-ve-okunakli-kodlama-icin-tavsiyeler/">Veritabanı ve Okunaklı Kodlama İçin Tavsiyeler</a> appeared first on <a rel="nofollow" href="https://dinamiknetwork.com">Dinamik Network</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://dinamiknetwork.com/veritabani-ve-okunakli-kodlama-icin-tavsiyeler/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
		<item>
		<title>SQL Server ile C# Entity Class Oluşturma</title>
		<link>https://dinamiknetwork.com/sql-server-ile-c-entity-class-olusturma/</link>
					<comments>https://dinamiknetwork.com/sql-server-ile-c-entity-class-olusturma/#comments</comments>
		
		<dc:creator><![CDATA[CAN YILDIRMAZ]]></dc:creator>
		<pubDate>Thu, 26 Dec 2019 08:45:23 +0000</pubDate>
				<category><![CDATA[T-SQL]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[C# Entity Class]]></category>
		<category><![CDATA[C# Model]]></category>
		<category><![CDATA[Class]]></category>
		<category><![CDATA[Code Generator]]></category>
		<category><![CDATA[Entity]]></category>
		<category><![CDATA[ileri SQL]]></category>
		<category><![CDATA[SQL]]></category>
		<category><![CDATA[SQL Server]]></category>
		<guid isPermaLink="false">https://dinamiknetwork.com/?p=942</guid>

					<description><![CDATA[<p>Merhabalar, SQL Server, T-SQL hakkında ilk yazımı yazıyorum. Esasında ilk başta temel yapılardan başlamayı düşünmüştüm ancak bu sefer farklı bir başlangıç yapmak istedim. Bu sebeple&#46;&#46;&#46;</p>
<p>The post <a rel="nofollow" href="https://dinamiknetwork.com/sql-server-ile-c-entity-class-olusturma/">SQL Server ile C# Entity Class Oluşturma</a> appeared first on <a rel="nofollow" href="https://dinamiknetwork.com">Dinamik Network</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Merhabalar,</p>
<p><strong>SQL Server</strong>, <strong>T-SQL</strong> hakkında ilk yazımı yazıyorum. Esasında ilk başta temel yapılardan başlamayı düşünmüştüm ancak bu sefer farklı bir başlangıç yapmak istedim. Bu sebeple bu yazıyı okuyan kişilerin MS-SQL hakkında temel bilgileri bildiklerini varsayıyorum.</p>
<p>Bu yazıda piyasada <strong>Code Generator</strong> olarak bilinen yapıyı kendimiz oluşturacağız. Code Generator ne demek diyecek olursanız bizim <strong>Entity</strong>&#8216;lerimizi kolayca üretmeyi sağlayan bir exedir. Entity nedir diye soracak olursanız da veritabanı üzerindeki tablolarımızın modelleridir diyebiliriz. Code Generator denen exe esasında arka tarafında birazdan yazacağımız bir SQL bloğu çalıştırmakta, sonuçlarını göstermektedir.</p>
<h2>C# Entity Class Oluşturma</h2>
<p>Evet, artık başlayalım. SQL Server&#8217;ı açalım. <strong>SQL Server</strong> verisyonum 2017 Developer Edition. Entity oluşturmak istediğim tablo da LogRecord tablosu. Aşağıdaki resimde de görebileceğiniz gibi çok olmasa da hatırı sayılabilecek alan sayısı olduğunu söylenebilir.</p>
<figure id="attachment_979" aria-describedby="caption-attachment-979" style="width: 1913px" class="wp-caption alignnone"><img wpfc-lazyload-disable="true" loading="lazy" class="size-full wp-image-979" src="https://dinamiknetwork.com/wp-content/uploads/2019/12/MSSQLMainScreen.png" alt="MSSQL Ana Ekran" width="1913" height="1031" srcset="https://dinamiknetwork.com/wp-content/uploads/2019/12/MSSQLMainScreen.png 1913w, https://dinamiknetwork.com/wp-content/uploads/2019/12/MSSQLMainScreen-768x414.png 768w, https://dinamiknetwork.com/wp-content/uploads/2019/12/MSSQLMainScreen-1536x828.png 1536w, https://dinamiknetwork.com/wp-content/uploads/2019/12/MSSQLMainScreen-850x458.png 850w, https://dinamiknetwork.com/wp-content/uploads/2019/12/MSSQLMainScreen-466x250.png 466w" sizes="(max-width: 1913px) 100vw, 1913px" /><figcaption id="caption-attachment-979" class="wp-caption-text">MSSQL</figcaption></figure>
<p>Şimdi bu kısımda SQL Server bize View&#8217;leri sayesinde yardımcı olacak. SQL Server&#8217;ın özel viewleri hakkında detaylı bilgiyi aşağıdaki linkten edinebilirsiniz.</p>
<p><a href="https://docs.microsoft.com/en-us/sql/relational-databases/system-catalog-views/catalog-views-transact-sql?view=sql-server-ver15">https://docs.microsoft.com/en-us/sql/relational-databases/system-catalog-views/catalog-views-transact-sql?view=sql-server-ver15</a></p>
<p>Şimdi önce kolonlarımızı getirtelim. Aşağıdaki sorgu bize bu konuda yardımcı olacaktır.</p>
<pre class="prettyprint lang-sql" data-start-line="1" data-visibility="visible" data-highlight="" data-caption="">SELECT * FROM sys.all_columns WHERE object_id = (SELECT OBJECT_ID ('LogRecord'))</pre>
<p>Resimde sonuçlarını da görelim.</p>
<figure id="attachment_982" aria-describedby="caption-attachment-982" style="width: 1913px" class="wp-caption alignnone"><img wpfc-lazyload-disable="true" loading="lazy" class="size-full wp-image-982" src="https://dinamiknetwork.com/wp-content/uploads/2019/12/ListTableColumns.png" alt="MSSQL Table" width="1913" height="1027" srcset="https://dinamiknetwork.com/wp-content/uploads/2019/12/ListTableColumns.png 1913w, https://dinamiknetwork.com/wp-content/uploads/2019/12/ListTableColumns-768x412.png 768w, https://dinamiknetwork.com/wp-content/uploads/2019/12/ListTableColumns-1536x825.png 1536w, https://dinamiknetwork.com/wp-content/uploads/2019/12/ListTableColumns-850x456.png 850w, https://dinamiknetwork.com/wp-content/uploads/2019/12/ListTableColumns-466x250.png 466w" sizes="(max-width: 1913px) 100vw, 1913px" /><figcaption id="caption-attachment-982" class="wp-caption-text">Table Columns</figcaption></figure>
<p>Artık kolonlarla ilgili olarak gerekli bilgiye sahibiz. Kolonların veri yapılarından kaynaklı olarak sahip oldukları özellikler de bu viewden bize gelmektedir. Şimdi bu tablodan bize <strong>system_type_id</strong> ve <strong>user_type_id</strong> isimli alanlar döndü. Yani aslında biz bu kolonların tiplerini de biliyoruz ama id değeri olarak biliyoruz. Bunların ne olduklarını bulabilmemiz için aşağıdaki sorgu bize yardımcı olacaktır.</p>
<p>SELECT * FROM sys.types</p>
<p>Sorgu sonucunu aşağıdaki resimde görebiliriz.</p>
<figure id="attachment_984" aria-describedby="caption-attachment-984" style="width: 1913px" class="wp-caption alignnone"><img wpfc-lazyload-disable="true" loading="lazy" class="size-full wp-image-984" src="https://dinamiknetwork.com/wp-content/uploads/2019/12/ListTypes.png" alt="MSSQL Data Types" width="1913" height="993" srcset="https://dinamiknetwork.com/wp-content/uploads/2019/12/ListTypes.png 1913w, https://dinamiknetwork.com/wp-content/uploads/2019/12/ListTypes-768x399.png 768w, https://dinamiknetwork.com/wp-content/uploads/2019/12/ListTypes-1536x797.png 1536w, https://dinamiknetwork.com/wp-content/uploads/2019/12/ListTypes-850x441.png 850w" sizes="(max-width: 1913px) 100vw, 1913px" /><figcaption id="caption-attachment-984" class="wp-caption-text">MSSQL Data Types</figcaption></figure>
<p>SQL Server üzerindeki tüm tipler ile ilgili bilgiler bu view üzerindedir. Şimdi tek yapmamız gereken sorguyu ayarlamak. Sorgumuzu parça parça yazıp geliştireceğiz. Şimdi bize lazım olan parçalar 2 view üzerinde olduğuna göre JOIN işlemi ile başlayabiliriz.</p>
<figure id="attachment_986" aria-describedby="caption-attachment-986" style="width: 1897px" class="wp-caption alignnone"><img wpfc-lazyload-disable="true" loading="lazy" class="size-full wp-image-986" src="https://dinamiknetwork.com/wp-content/uploads/2019/12/JoinResult.png" alt="MSSQL JOIN" width="1897" height="1028" srcset="https://dinamiknetwork.com/wp-content/uploads/2019/12/JoinResult.png 1897w, https://dinamiknetwork.com/wp-content/uploads/2019/12/JoinResult-768x416.png 768w, https://dinamiknetwork.com/wp-content/uploads/2019/12/JoinResult-1536x832.png 1536w, https://dinamiknetwork.com/wp-content/uploads/2019/12/JoinResult-850x461.png 850w" sizes="(max-width: 1897px) 100vw, 1897px" /><figcaption id="caption-attachment-986" class="wp-caption-text">MSSQL JOIN</figcaption></figure>
<p>Şimdi sıra ihtiyacımız olan alanlar ile bu sorguyu düzenlemekte. Sorguyu aşağıdaki gibi düzenleyelim.</p>
<figure id="attachment_948" aria-describedby="caption-attachment-948" style="width: 1913px" class="wp-caption alignnone"><img wpfc-lazyload-disable="true" loading="lazy" class="size-full wp-image-948" src="https://dinamiknetwork.com/wp-content/uploads/2019/12/reducedJoinResult.png" alt="MSSQL SELECT" width="1913" height="1030" srcset="https://dinamiknetwork.com/wp-content/uploads/2019/12/reducedJoinResult.png 1913w, https://dinamiknetwork.com/wp-content/uploads/2019/12/reducedJoinResult-768x414.png 768w, https://dinamiknetwork.com/wp-content/uploads/2019/12/reducedJoinResult-1536x827.png 1536w, https://dinamiknetwork.com/wp-content/uploads/2019/12/reducedJoinResult-850x458.png 850w, https://dinamiknetwork.com/wp-content/uploads/2019/12/reducedJoinResult-466x250.png 466w" sizes="(max-width: 1913px) 100vw, 1913px" /><figcaption id="caption-attachment-948" class="wp-caption-text">T-SQL SELECT</figcaption></figure>
<h2>SQL Server &#8211; C# Veri Tipleri</h2>
<p>Sorgumuz fena bir yere gelmedi aslında. Elimizde alan isimleri ve veri tipleri var ancak bu tipler SQL tipleri. Bizim oluşturacağımız entity hangi programlama dili içinse onun karşılığı veri tipini bulmalıyız. Esasında programlama dilleri içerisinde veri tipleri benzerlik göstermektedir. Ben C# programlama dilini baz alarak hareket edeceğim. C# veri tipleri ile ilgili detaylı bilgiye aşağıdaki linkten ulşabilirsiniz.</p>
<p><a href="https://social.msdn.microsoft.com/Forums/tr-TR/379a88e0-ebd5-4666-9b73-e16f77698a38/c-deikenler-veri-tipleri?forum=csharptr">https://social.msdn.microsoft.com/Forums/tr-TR/379a88e0-ebd5-4666-9b73-e16f77698a38/c-deikenler-veri-tipleri?forum=csharptr</a></p>
<p>Şimdi sorgumuzun sondan bir önceki düzenlemesini yapalım. Sizin tablonuzda farklı tipler varsa yukarıdaki linkten yararlanarak C# karşılığını bulabilirsiniz. Ben sorgumu aşağıdaki hale getirdim.</p>
<figure id="attachment_950" aria-describedby="caption-attachment-950" style="width: 1910px" class="wp-caption alignnone"><img wpfc-lazyload-disable="true" loading="lazy" class="size-full wp-image-950" src="https://dinamiknetwork.com/wp-content/uploads/2019/12/EntityView1.png" alt="MSSQL ENTITY" width="1910" height="1023" srcset="https://dinamiknetwork.com/wp-content/uploads/2019/12/EntityView1.png 1910w, https://dinamiknetwork.com/wp-content/uploads/2019/12/EntityView1-768x411.png 768w, https://dinamiknetwork.com/wp-content/uploads/2019/12/EntityView1-1536x823.png 1536w, https://dinamiknetwork.com/wp-content/uploads/2019/12/EntityView1-850x455.png 850w, https://dinamiknetwork.com/wp-content/uploads/2019/12/EntityView1-466x250.png 466w" sizes="(max-width: 1910px) 100vw, 1910px" /><figcaption id="caption-attachment-950" class="wp-caption-text">T-SQL Entity</figcaption></figure>
<p>Şimdi elimizde bir şeyler var. İsimler ve veri tipleri elimizde. Entity üzerinde değer setlenirken hiç bir kontrol yapmayacağım için Auto-implemented propertie haline getirmem yeterli olacaktır. Auto-implemeneted propertie kavaramının detaylı açıklamasına aşağıdaki linkten ulaşabilirsiniz.</p>
<p><a href="https://docs.microsoft.com/tr-tr/dotnet/csharp/programming-guide/classes-and-structs/auto-implemented-properties">https://docs.microsoft.com/tr-tr/dotnet/csharp/programming-guide/classes-and-structs/auto-implemented-properties</a></p>
<p>Sorguyu aşağıdaki hale getiriyoruz.</p>
<figure id="attachment_953" aria-describedby="caption-attachment-953" style="width: 1915px" class="wp-caption alignnone"><img wpfc-lazyload-disable="true" loading="lazy" class="size-full wp-image-953" src="https://dinamiknetwork.com/wp-content/uploads/2019/12/EntityView2.png" alt="T-SQL Entity Properties" width="1915" height="1028" srcset="https://dinamiknetwork.com/wp-content/uploads/2019/12/EntityView2.png 1915w, https://dinamiknetwork.com/wp-content/uploads/2019/12/EntityView2-768x412.png 768w, https://dinamiknetwork.com/wp-content/uploads/2019/12/EntityView2-1536x825.png 1536w, https://dinamiknetwork.com/wp-content/uploads/2019/12/EntityView2-850x456.png 850w, https://dinamiknetwork.com/wp-content/uploads/2019/12/EntityView2-466x250.png 466w" sizes="(max-width: 1915px) 100vw, 1915px" /><figcaption id="caption-attachment-953" class="wp-caption-text">T-SQL Entity Properties</figcaption></figure>
<p>Şu an elimizde tablonun kolonları yani propertieleri var. Bu kadar yapmışken sınıfını da ayarlayalım. Sorguyu son kez değiştiriyorum.</p>
<figure id="attachment_959" aria-describedby="caption-attachment-959" style="width: 1915px" class="wp-caption alignnone"><img wpfc-lazyload-disable="true" loading="lazy" class="size-full wp-image-959" src="https://dinamiknetwork.com/wp-content/uploads/2019/12/EntityViewLast.png" alt="T-SQL Entity Class" width="1915" height="1029" srcset="https://dinamiknetwork.com/wp-content/uploads/2019/12/EntityViewLast.png 1915w, https://dinamiknetwork.com/wp-content/uploads/2019/12/EntityViewLast-768x413.png 768w, https://dinamiknetwork.com/wp-content/uploads/2019/12/EntityViewLast-1536x825.png 1536w, https://dinamiknetwork.com/wp-content/uploads/2019/12/EntityViewLast-850x457.png 850w, https://dinamiknetwork.com/wp-content/uploads/2019/12/EntityViewLast-466x250.png 466w" sizes="(max-width: 1915px) 100vw, 1915px" /><figcaption id="caption-attachment-959" class="wp-caption-text">T-SQL Entity Class</figcaption></figure>
<p>Artık entitymiz hazır. Sorgu sonucunu alıp class yaratabiliriz. Bir DB üzerindeki tüm tabloları bu şekilde hızlıca Entity haline getirip modellerimizi hazırlayabilir, proje ya da projelerimize hızlıca entegre edebiliriz.</p>
<p>Bir sonraki yazıda yeniden görüşmek dileğiyle&#8230; Diğer <strong><a href="https://dinamiknetwork.com/k/yazilim/diller/t-sql/">T-SQL</a> </strong>konularına ulaşmak için tıklayın.</p>
<p>The post <a rel="nofollow" href="https://dinamiknetwork.com/sql-server-ile-c-entity-class-olusturma/">SQL Server ile C# Entity Class Oluşturma</a> appeared first on <a rel="nofollow" href="https://dinamiknetwork.com">Dinamik Network</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://dinamiknetwork.com/sql-server-ile-c-entity-class-olusturma/feed/</wfw:commentRss>
			<slash:comments>3</slash:comments>
		
		
			</item>
	</channel>
</rss>
