O/R Tasarımcısı kullanarak devralmayı yapılandırma

Nesne İlişkisel Tasarımcısı (O/R Tasarım Aracı), 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ım Aracı 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ım Aracı kullanarak devralmayı yapılandırmaya yönelik ayrıntılı adım adım yol tarifleri için bkz. İzlenecek yol: Tek tablo devralma kullanarak LINQ to SQL sınıfları oluşturma (O/R Tasarım Aracı).

Devralınan veri sınıfları oluşturmak için

  1. Var olan bir Visual Basic veya C# projesine LINQ to SQL Sınıfları öğesi ekleyerek O/R Tasarım Aracı açın.

  2. Temel sınıf olarak kullanmak istediğiniz tabloyu O/R Tasarım Aracı sürükleyin.

  3. Tablonun ikinci bir kopyasını O/R Tasarım Aracı sürükleyin ve yeniden adlandırın. Bu türetilmiş sınıf veya alt sınıftır.

  4. Araç Kutusu'nun Nesne İlişkisel Tasarımcısı sekmesinde Devralma'ya tıklayın ve ardından alt sınıfa (yeniden adlandırdığınız tablo) tıklayın ve 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 ardından 2. adımda oluşturduğunuz ilk sınıfa tıklayın. Devralma satırındaki ok birinci sınıfı gösterir.

  5. 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).

  6. O/R Tasarım Aracı devralma satırını seçin.

  7. Özellikler penceresinde Discriminator Özelliğini, sınıflarınızdaki kayıtları ayırt eden sütun adına ayarlayın.

  8. 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.)

  9. 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.)

  10. İ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.