.NET Framework uygulamalarında veri kümeleri arasında ilişki oluşturma
Not
Veri kümeleri ve ilgili sınıflar, uygulamaların veritabanıyla bağlantısı kesilirken uygulamaların bellekteki verilerle çalışmasını sağlayan 2000'lerin başlarındaki eski .NET Framework teknolojileridir. Teknolojiler özellikle kullanıcıların verileri değiştirmesine ve değişiklikleri veritabanında kalıcı hale getirebilmesine olanak tanıyan uygulamalar için kullanışlıdır. Veri kümelerinin çok başarılı bir teknoloji olduğu kanıtlanmış olsa da, yeni .NET uygulamalarının Entity Framework Core kullanmasını öneririz. Entity Framework, tablosal verilerle nesne modelleri olarak çalışmak için daha doğal bir yol sağlar ve daha basit bir programlama arabirimine sahiptir.
İlişkili veri tabloları içeren veri kümeleri, tablolar arasındaki bir üst/alt ilişkiyi temsil etmek ve birbiriyle ilgili kayıtları döndürmek için nesneleri kullanır DataRelation . Veri Kaynağı Yapılandırma Sihirbazı'nı veya Veri Kümesi Tasarımcısı'nı kullanarak veri kümelerine ilgili tabloları eklemek, nesneyi sizin için oluşturur ve yapılandırırDataRelation.
DataRelation nesnesi iki işlev gerçekleştirir:
Üzerinde çalıştığınız bir kayıtla ilgili kayıtları kullanılabilir hale getirir. Bir üst kayıtta () ve alt kayıtla (GetChildRows) çalışıyorsanız bir üst kayıttaysanız alt kayıtlarGetParentRow sağlar.
Bir üst kaydı sildiğinizde ilgili alt kayıtları silme gibi bilgi tutarlılığı kısıtlamaları uygulayabilir.
Gerçek birleşim ile bir nesnenin işlevi DataRelation arasındaki farkı anlamak önemlidir. Gerçek bir birleşimde kayıtlar üst ve alt tablolardan alınır ve tek, düz bir kayıt kümesine konur. Bir DataRelation nesne kullandığınızda, yeni kayıt kümesi oluşturulmaz. Bunun yerine, DataRelation tablolar arasındaki ilişkiyi izler ve üst ve alt kayıtları eşitlenmiş durumda tutar.
DataRelation nesneleri ve kısıtlamaları
DataRelation Aşağıdaki kısıtlamaları oluşturmak ve zorunlu kılmak için de bir nesne kullanılır:
Tablodaki bir sütunun yineleme içermediğini garanti eden benzersiz bir kısıtlama.
Bir veri kümesindeki üst ve alt tablo arasındaki bilgi tutarlılığını korumak için kullanılabilen yabancı anahtar kısıtlaması.
Bir DataRelation nesnede belirttiğiniz kısıtlamalar, otomatik olarak uygun nesneler oluşturularak veya özellikler ayarlanarak uygulanır. nesnesini kullanarak DataRelation yabancı anahtar kısıtlaması oluşturursanız, sınıfın ForeignKeyConstraint örnekleri nesnenin ChildKeyConstraint özelliğine DataRelation eklenir.
Benzersiz bir kısıtlama, yalnızca veri sütununun Unique özelliğini olarak ayarlayarak veya nesnesinin ParentKeyConstraint özelliğine true
DataRelation sınıfının bir örneğini UniqueConstraint ekleyerek uygulanır. Veri kümesindeki kısıtlamaları askıya alma hakkında bilgi için bkz . Veri kümesini doldururken kısıtlamaları kapatma.
Bilgi tutarlılığı kuralları
Yabancı anahtar kısıtlamasının bir parçası olarak, üç noktada uygulanan bilgi tutarlılığı kuralları belirtebilirsiniz:
Üst kayıt güncelleştirildiğinde
Üst kayıt silindiğinde
Bir değişiklik kabul edildiğinde veya reddedildiğinde
Yapabileceğiniz kurallar numaralandırmada Rule belirtilir ve aşağıdaki tabloda listelenmiştir.
Yabancı anahtar kısıtlama kuralı | Eylem |
---|---|
Cascade | Üst kayıtta yapılan değişiklik (güncelleştirme veya silme) alt tablodaki ilgili kayıtlarda da yapılır. |
SetNull | Alt kayıtlar silinmez, ancak alt kayıtlardaki yabancı anahtar olarak DBNullayarlanır. Bu ayar sayesinde alt kayıtlar "yalnız bırakılmış" olarak bırakılabilir; diğer bir deyişle, üst kayıtlarla hiçbir ilişkisi yoktur. Not: Bu kuralın kullanılması alt tabloda geçersiz verilerle sonuçlanabilir. |
SetDefault | İlgili alt kayıtlardaki yabancı anahtar varsayılan değerine ayarlanır (sütunun DefaultValue özelliği tarafından belirlendiği gibi). |
None | İlgili alt kayıtlarda değişiklik yapılmaz. Bu ayarla, alt kayıtlar geçersiz üst kayıtlara başvurular içerebilir. |
Veri kümesi tablolarındaki güncelleştirmeler hakkında daha fazla bilgi için bkz . Verileri veritabanına geri kaydetme.
Yalnızca kısıtlama ilişkileri
Bir DataRelation nesne oluşturduğunuzda, ilişkinin yalnızca kısıtlamaları zorlamak için kullanılacağını belirtme seçeneğiniz vardır; diğer bir deyişle, ilgili kayıtlara erişmek için de kullanılmaz. Bu seçeneği, biraz daha verimli olan ve ilişkili kayıtlar özelliğine sahip birden az yöntem içeren bir veri kümesi oluşturmak için kullanabilirsiniz. Ancak, ilgili kayıtlara erişemezsiniz. Örneğin, yalnızca kısıtlama ilişkisi alt kayıtları olan bir üst kaydı silmenizi engeller ve alt kayıtlara üst kayıt üzerinden erişemezsiniz.
Veri Kümesi Tasarımcısı'nda el ile veri ilişkisi oluşturma
Visual Studio'daki veri tasarım araçlarını kullanarak veri tabloları oluşturduğunuzda, bilgiler verilerinizin kaynağından toplanabilirse ilişkiler otomatik olarak oluşturulur. Veri tablolarını Araç Kutusu'nun DataSet sekmesinden el ile eklerseniz, ilişkiyi el ile oluşturmanız gerekebilir. Program aracılığıyla nesne oluşturma DataRelation hakkında bilgi için bkz . DataRelations Ekleme.
Veri tabloları arasındaki ilişkiler Veri Kümesi Tasarımcısı'nda çizgi olarak görünür ve ilişkinin bire çok yönünü gösteren bir anahtar ve sonsuzluk karakteri bulunur. Varsayılan olarak, ilişkinin adı tasarım yüzeyinde görünmez.
Not
Bilgisayarınız bu makaledeki Bazı Visual Studio kullanıcı arabirimi öğeleri için farklı adlar veya konumlar gösterebilir. Visual Studio'nun farklı bir sürümünü veya farklı ortam ayarlarını kullanıyor olabilirsiniz. Daha fazla bilgi için bkz . IDE'yi kişiselleştirme.
İki veri tablosu arasında ilişki oluşturmak için
Veri kümenizi Veri Kümesi Tasarımcısı'nda açın. Daha fazla bilgi için bkz . İzlenecek Yol: Veri Kümesi Tasarımcısı'nda Veri Kümesi Oluşturma.
Bir İlişki nesnesini DataSet araç kutusundan ilişkideki alt veri tablosuna sürükleyin.
İlişki iletişim kutusu açılır ve Alt Tablo kutusu, İlişki nesnesini sürüklediğiniz tabloyla birlikte açılır.
Üst Tablo kutusundan üst tabloyu seçin. Üst tablo, bire çok ilişkisinin "bir" tarafındaki kayıtları içerir.
Alt Tablo kutusunda doğru alt tablonun görüntülendiğini doğrulayın. Alt tablo, bire çok ilişkisinin "çok" tarafındaki kayıtları içerir.
Ad kutusuna ilişki için bir ad yazın veya seçili tablolara göre varsayılan adı bırakın. Bu, koddaki gerçek DataRelation nesnenin adıdır.
Anahtar Sütunları ve Yabancı Anahtar Sütunları listelerindeki tabloları birleştiren sütunları seçin.
İlişki mi, kısıtlama mı yoksa her ikisi birden mi oluşturulacağını seçin.
İç İçe İlişki kutusunu seçin veya temizleyin. Bu seçeneğin seçilmesi özelliği olarak Nested
true
ayarlar ve bu satırlar XML verileri olarak yazıldığında veya ile XmlDataDocumenteşitlendiğinde ilişkinin alt satırlarının üst sütun içinde iç içe yerleştirmesine neden olur. Daha fazla bilgi için bkz . DataRelations İç İçe Yerleştirme.Bu tablolardaki kayıtlarda değişiklik yaparken kuralları zorlanacak şekilde ayarlayın. Daha fazla bilgi için bkz. Rule.
İlişkiyi oluşturmak için Tamam'a tıklayın. Tasarımcıda iki tablo arasında bir ilişki çizgisi görüntülenir.
Veri Kümesi Tasarımcısı'nda ilişki adı görüntülemek için
Veri kümenizi Veri Kümesi Tasarımcısı'nda açın. Daha fazla bilgi için bkz . İzlenecek Yol: Veri Kümesi Tasarımcısı'nda Veri Kümesi Oluşturma.
veri menüsünden İlişki Etiketlerini Göster komutunu seçerek ilişki adını görüntüleyin. İlişki adını gizlemek için bu komutu temizleyin.