C# Bir sınıfın örneği MSSQL'de nasıl saklanır?

II.Wilhelm

Hectopat
Katılım
11 Eylül 2020
Mesajlar
1.822
Çözümler
6
Yer
Almanya
Daha fazla  
Cinsiyet
Erkek
Meslek
König
Merhaba. Mesela bir sınıf oluşturduk ve bunun instance'ları var. Bunu direkt MSSQL'de nasıl saklayabilirim?
 
Son düzenleyen: Moderatör:
Ne yapmak istiyorsunuz tam anlamadım biraz anlatabilir misiniz?
Mesela bir sınıf oluşturdum aşağıdaki gibi. Benim bunun bir instance ını direk kaydetme imkanım varmıdır? Yani nvarchar, int gibi apayrı bir tip olarak. Eğer tek tek bunları kaydetmek zorunda kalırsam her dizi ve koleksiyon içinde ayrı bir tablo oluşturup foreign key le bağlamam gerekecek.
C#:
class A
{
 List<string> Liste = new();
 bool kontrol;
 string a ="";
 
}
 
C# kullanan arkadaşlar çözüm bulurlar diye düşünüyorum, eğer sorunuzu doğru anladıysam Java'da benzer şeyler yapılabiliyor. Ancak classları biraz daha detaylı oluşturmak gerekiyor, yani farklı tablolar, foreign keyler kullanımı sql için zaten olması gereken bir şey, madem relational bir db kullanılacak bu özellikleri çıkarırsak pek bir şeye benzemez.

Java'da bu işi şöyle yapmıştık zamanında, bu düz classlar yerine bunların db nesnesi olduğunu belirten çeşitli annotationlar kullanılıyor, C#ta da benzer bir tool ve bununla alakalı çözüm olabilir diye ekliyorum örnek olması açısından:

@Entity
@Table(name="db_deki_tablonun_adi"
,catalog=""
)
public class A implements java.io.Serializable {
...

Bunun içinde getter setterlar vb. mevcut, bunların da başka db tablolarına ilişkisi olması durumunda örneğin:

@ManyToOne(fetch=FetchType.LAZY)
@JoinColumn(name="foregin_key_tablosunun_primary_keyi", nullable=false)
public Foreign_Keyin_oldugu_class getBlaBla() {
return this.blablanesnesi;
}

Hibernate forward engineering (java nesnelerinden db yaratma) veya reverse engineering (dbde oluşturulan tablolardan java classlarını generate etme) gibi yöntemler ile db-kod bağlantısı sağlanabilir. Automatic Table Creation Using Hibernate - GeeksforGeeks ve Hibernate Forward Engineering - Create Tables from Entity Classes incelenebilir.

C# için malesef bilgi sahibi değilim ama benzer hatta çok daha iyi bir çözümü vardır diye düşünüyorum, benim bu anlattığım çözümü 10 sene önce yapmıştık, bizim o zamanki tablolarda string dizileri vb. column olarak değil, relationu olan ayrı tablolarda (sizin istemediğiniz şekilde) duruyordu.
 
C# kullanan arkadaşlar çözüm bulurlar diye düşünüyorum, eğer sorunuzu doğru anladıysam Java'da benzer şeyler yapılabiliyor. Ancak classları biraz daha detaylı oluşturmak gerekiyor, yani farklı tablolar, foreign keyler kullanımı sql için zaten olması gereken bir şey, madem relational bir db kullanılacak bu özellikleri çıkarırsak pek bir şeye benzemez.

Java'da bu işi şöyle yapmıştık zamanında, bu düz classlar yerine bunların db nesnesi olduğunu belirten çeşitli annotationlar kullanılıyor, C#ta da benzer bir tool ve bununla alakalı çözüm olabilir diye ekliyorum örnek olması açısından:

@Entity
@Table(name="db_deki_tablonun_adi"
,catalog=""
)
public class A implements java.io.Serializable {
...

Bunun içinde getter setterlar vb. mevcut, bunların da başka db tablolarına ilişkisi olması durumunda örneğin:

@ManyToOne(fetch=FetchType.LAZY)
@JoinColumn(name="foregin_key_tablosunun_primary_keyi", nullable=false)
public Foreign_Keyin_oldugu_class getBlaBla() {
return this.blablanesnesi;
}

Hibernate forward engineering (java nesnelerinden db yaratma) veya reverse engineering (dbde oluşturulan tablolardan java classlarını generate etme) gibi yöntemler ile db-kod bağlantısı sağlanabilir. Automatic Table Creation Using Hibernate - GeeksforGeeks ve Hibernate Forward Engineering - Create Tables from Entity Classes incelenebilir.

C# için malesef bilgi sahibi değilim ama benzer hatta çok daha iyi bir çözümü vardır diye düşünüyorum, benim bu anlattığım çözümü 10 sene önce yapmıştık, bizim o zamanki tablolarda string dizileri vb. column olarak değil, relationu olan ayrı tablolarda (sizin istemediğiniz şekilde) duruyordu.
Cevabınız için teşekkürler hocam.
 

Yeni konular

Geri
Yukarı