O/R Tasarımcısı kullanarak devralmayı yapılandırma
Nesne İlişkisel Tasarımcısı (O/R Tasarımcısı), genellikle ilişkisel sistemlerde uygulandığından tek tablo devralma kavramını destekler. Tek tablo devralmada, hem üst bilgiler hem de alt bilgiler için alanlar içeren tek bir veritabanı tablosu vardır. İlişkisel verilerle, ayrımcı sütun herhangi bir kaydın hangi sınıfa ait olduğunu belirleyen değeri içerir.
Örneğin, bir Persons
şirket tarafından çalıştırılan herkesi içeren bir tablo düşünün. Bazıları çalışan, bazıları yönetici. Tablo, Persons
yöneticiler için 1 ve çalışanlar için 2 değerine sahip adlı EmployeeType
bir sütun içerir; bu ayrımcı sütundur. Bu senaryoda, çalışanların bir alt sınıfını oluşturabilir ve sınıfı yalnızca 2 değerine sahip EmployeeType
kayıtlarla doldurabilirsiniz. Sınıfların her birinden uygulanmayan sütunları da kaldırabilirsiniz.
Devralma kullanan (ve ilişkisel verilere karşılık gelen) bir nesne modeli oluşturmak biraz kafa karıştırıcı olabilir. Aşağıdaki yordamda, O/R Tasarımcısı ile devralmayı yapılandırmak için gereken adımlar özetlenmiştir. Mevcut bir tabloya ve sütunlara başvurmadan genel adımların izlenmesi zor olabilir, bu nedenle verileri kullanan bir izlenecek yol sağlanır. O/R Tasarımcısı'nı kullanarak devralmayı yapılandırmaya yönelik ayrıntılı adım adım yol tarifleri için bkz. İzlenecek yol: Tek tablolu devralma (O/R Tasarımcısı) kullanarak LINQ to SQL sınıfları oluşturma.
Devralınan veri sınıfları oluşturmak için
Var olan bir Visual Basic veya C# projesine LINQ to SQL Classes öğesi ekleyerek O/R Tasarımcısı'nı açın.
Temel sınıf olarak kullanmak istediğiniz tabloyu O/R Tasarımcısı'na sürükleyin.
Tablonun ikinci bir kopyasını O/R Tasarımcısı'na sürükleyin ve yeniden adlandırın. Bu türetilmiş sınıf veya alt sınıftır.
Araç Kutusu'nun Nesne İlişkisel Tasarımcısı sekmesinde Devralma'ya tıklayın ve ardından alt sınıfı (yeniden adlandırdığınız tablo) seçip temel sınıfa bağlayın.
Not
Araç Kutusu'nda Devralma öğesine tıklayın ve fare düğmesini bırakın, 3. adımda oluşturduğunuz sınıfın ikinci kopyasına tıklayın ve 2. adımda oluşturduğunuz ilk sınıfı seçin. Devralma satırındaki ok birinci sınıfı gösterir.
Her sınıfta, görünmesini istemediğiniz ve ilişkilendirmeler için kullanılmayan nesne özelliklerini silin. İlişkilendirmeler için kullanılan nesne özelliklerini silmeye çalışırsanız bir hata alırsınız:
The property <property name> cannot be deleted because it is participating in the association <association name>
.Not
Türetilmiş bir sınıf, temel sınıfında tanımlanan özellikleri devraldığından, her sınıfta aynı sütunlar tanımlanamaz. (Sütunlar özellik olarak uygulanır.) Temel sınıftaki özelliğinde devralma değiştiricisini ayarlayarak türetilmiş sınıfta sütun oluşturmayı etkinleştirebilirsiniz. Daha fazla bilgi için bkz . Devralma temelleri (Visual Basic).
O/R Tasarımcısı'nda devralma satırını seçin.
Özellikler penceresinde Discriminator Özelliğini, sınıflarınızdaki kayıtları ayırt eden sütun adına ayarlayın.
Türetilmiş Sınıf Ayrıştırıcısı Değeri özelliğini, veritabanında kaydı devralınan tür olarak belirleyen değere ayarlayın. (Bu, ayırıcı sütununda depolanan ve devralınan sınıfı atamak için kullanılan değerdir.)
Temel Sınıf Ayrıştırıcısı Değeri özelliğini, kaydı temel tür olarak belirleyen değere ayarlayın. (Bu, ayırıcı sütununda depolanan ve temel sınıfı atamak için kullanılan değerdir.)
İsteğe bağlı olarak, Devralma Varsayılan özelliğini, tanımlı devralma koduyla eşleşmeyen satırları yüklerken kullanılan devralma hiyerarşisinde bir tür belirleyecek şekilde de ayarlayabilirsiniz. Başka bir deyişle, bir kaydın ayrımcı sütununda Türetilmiş Sınıf Ayırıcı Değeri veya Temel Sınıf Ayırıcı Değeri özelliklerindeki değerle eşleşmeyen bir değer varsa, kayıt Devralma Varsayılanı olarak belirlenen türe yüklenir.