Bilmek istediğin her şeye ulaş

LinqToSql de one to many ilişkili iki tabloya aynı anda kayıt nasıl yapılır?

one to one ilişkili mevzuda, bir tablo nesnesini kullanarak diğer tablo nesnesine eşitlediğimizde, ilişki otomatikman kuruluyordu ve 2 tabloya da kayıt gerçekleşiyordu sorunsuz fakat one to many de bu eşitlik yapılamıyor hata veriyor çünkü bi tarafta tek nesne varken diğer tarafta koleksiyon var ve eşitlenemiyor. bu ilşki nasıl kurulabilir? Düzenle
Direk olarak insert edeceğiniz nesneye attach ederek submit ederseniz LINQ to SQL bunu sizin için gerçekleştiriyor zaten.

using(var db = new MyDataContext())
{
var u = new User();
u.Age = 23; 
var p = new Photo();
p.UrlKey = "sample-photo.jpg";
//User nesnesine Add ettiğimiz için herhangi bir 
//PrimaryKey belirtmemize gerek yoktur.
u.Photos.Add(p);
var p2 = new Photo();
p2.UrlKey = "another-sample-photo.jpg";
u.Photos.Add(p2);
db.Users.InsertOnSubmit(u);
db.SubmitChanges();
}


Öncelikle Users ve Photos olarak birbiri ile ilişkilendirilmiş 2 tablonuz olduğunu var sayarsak, kullanıcıyı foto veya fotoları ile birlikte kaydetmek için yukarıdaki biçimde kod yazabilirsiniz.

LINQ bu nesneleri veri tabanına kaydederken öncelikle gidip Users tablosuna User kaydını yapar ve o User'ın ID bilgisi ile Photos tablosuna belirlediğiniz kayıtları ayrıca yapar.
  • Paylaş
1

Unluckypod, internette bu kadar güzel açıklama yapılmamış. eyvallah:)

Sonraki Soru
HESAP OLUŞTUR

İstatistikler

138 Görüntülenme3 Takipçi1 Yanıt

Konu Başlıkları