Aracılığıyla paylaş


Varlık sınıflarına doğrulama ekleme

Uyarı

Sınıf DataSet 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ümeleri başarısı kanıtlanmış bir teknoloji olsa da, yeni .NET uygulamaları için önerilen yaklaşım Entity Framework Core kullanmaktır. 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.

Varlık sınıflarının doğrulanması, veri nesnelerine girilen değerlerin bir nesnenin şemasındaki kısıtlamalara ve ayrıca uygulama için oluşturulan kurallara uygun olduğunu onaylama işlemidir. Temel alınan veritabanına güncelleştirme göndermeden önce verileri doğrulamak, hataları azaltan iyi bir uygulamadır. Ayrıca bir uygulama ile veritabanı arasındaki gidiş dönüş sayısını da azaltır.

Visual Studio'daki LINQ to SQL araçları, kullanıcıların tam varlıkların Eklemeleri, Güncelleştirmeleri ve Silmeleri sırasında ve ayrıca tek tek sütun değişiklikleri sırasında ve sonrasında çalışan tasarımcı tarafından oluşturulan kodu genişletmesini sağlayan kısmi yöntemler sağlar.

Uyarı

Bu konu, O/R Tasarımcısı'nı kullanarak varlık sınıflarına doğrulama eklemeye yönelik temel adımları sağlar. Belirli bir varlık sınıfına başvurmadan bu genel adımları izlemek zor olabileceği için, gerçek verileri kullanan bir kılavuz sağlanır.

Belirli bir sütundaki değerde yapılan değişiklikler için doğrulama ekleme

Bu yordamda, sütundaki değer değiştiğinde verilerin nasıl doğrulanması gösterilmektedir. Doğrulama sınıf tanımı içinde gerçekleştirildiğinden (kullanıcı arabirimi yerine), değer doğrulamanın başarısız olmasına neden olursa bir özel durum oluşturulur. Uygulamanızda sütun değerlerini değiştirmeye çalışan kod için hata işlemeyi uygulayın.

Uyarı

Bu makaledeki yönergeler, Visual Studio'da kullanılabilen etkileşimli geliştirme deneyiminin (IDE) en son sürümünü gösterir. Bilgisayarınız bazı 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. IDEkişiselleştirme.

Sütunun değer değişikliği sırasında verileri doğrulamak için

  1. O/R Tasarımcısı'nda yeni bir LINQ to SQL Sınıfları dosyası (.dbmldosyası) açın veya oluşturun. (Çözüm Gezgini'nde dosyaya .dbml çift tıklayın.)

  2. O/R Tasarımcısı'nda doğrulama eklemek istediğiniz sınıfa sağ tıklayın ve kodu görüntüle'yi seçin.

    Kod Düzenleyicisi seçili varlık sınıfı için kısmi bir sınıfla açılır.

  3. İmleci kısmi sınıfa yerleştirin.

  4. Visual Basic projeleri için:

    1. Yöntem Adı listesini genişletin.

    2. OnCOLUMNNAMEChanging yöntemini, doğrulama eklemek istediğiniz sütun için bulun.

    3. Kısmi sınıfa bir OnCOLUMNNAMEChanging yöntem eklenir.

    4. Önce bir değerin girildiğini doğrulamak ve ardından sütun için girilen değerin uygulamanız için kabul edilebilir olduğundan emin olmak için aşağıdaki kodu ekleyin. Argüman value önerilen bir değeri içerir, bu nedenle geçerli bir değer olduğunu doğrulamak için kontrol ekleyin.

      If value.HasValue Then
          ' Add code to ensure that the value is acceptable.
          ' If value < 1 Then
          '    Throw New Exception("Invalid data!")
          ' End If
      End If
      

    C# projeleri için:

    C# projeleri otomatik olarak olay işleyicileri oluşturmadığından, sütun değiştiren kısmi yöntemleri oluşturmak için IntelliSense'i kullanabilirsiniz. Kullanılabilir kısmi yöntemler listesine erişmek için bir alan yazın partial ve ardından bir boşluk bırakın. Doğrulama eklemek istediğiniz sütunun sütun değiştirme yöntemine tıklayın. Aşağıdaki kod, sütun değiştiren kısmi bir yöntem seçtiğinizde oluşturulan koda benzer:

    partial void OnCOLUMNNAMEChanging(COLUMNDATATYPE value)
        {
           throw new System.NotImplementedException();
        }
    

Varlık Sınıfına Güncelleştirmeler için Doğrulama Ekleme

Değişiklikler sırasında değerleri denetlemeye ek olarak, tam bir varlık sınıfını güncelleştirme girişiminde bulunulduğunda verileri de doğrulayabilirsiniz. Denenen güncelleştirme sırasında doğrulama, iş kuralları bunu gerektiriyorsa birden çok sütundaki değerleri karşılaştırmanıza olanak tanır. Aşağıdaki yordam, tam bir varlık sınıfını güncelleştirme girişiminde bulunulduğunda nasıl doğrulan yapılacağını gösterir.

Uyarı

Varlık sınıflarını tamamlamaya yönelik güncelleştirmeler için doğrulama kodu, kısmi DataContext sınıfta (belirli bir varlık sınıfının kısmi sınıfı yerine) yürütülür.

Varlık sınıfına güncelleştirme sırasında verileri doğrulamak için

  1. O/R Tasarımcısı'nda yeni bir LINQ to SQL Sınıfları dosyası (.dbmldosyası) açın veya oluşturun. (Çözüm Gezgini'nde dosyaya .dbml çift tıklayın.)

  2. O/R Tasarımcısı'nda boş bir alana sağ tıklayın ve Kodu Görüntüle'ye tıklayın.

    Kod Düzenleyicisi, DataContext için bir kısmi sınıfla açılır.

  3. İmleci DataContext için kısmi sınıfa yerleştirin.

  4. Visual Basic projeleri için:

    1. Yöntem Adı listesini genişletin.

    2. UpdateENTITYCLASSNAME öğesine tıklayın.

    3. Kısmi sınıfa bir UpdateENTITYCLASSNAME yöntem eklenir.

    4. Aşağıdaki kodda gösterildiği gibi bağımsız değişkenini instance kullanarak tek tek sütun değerlerine erişin:

      If (instance.COLUMNNAME = x) And (instance.COLUMNNAME = y) Then
          Dim ErrorMessage As String = "Invalid data!"
          Throw New Exception(ErrorMessage)
      End If
      

    C# projeleri için:

    C# projeleri otomatik olarak olay işleyicileri oluşturmadığından, kısmi UpdateCLASSNAME yöntemi oluşturmak için IntelliSense'i kullanabilirsiniz. Kullanılabilir kısmi yöntemler listesine erişmek için bir alan yazın partial ve ardından bir boşluk bırakın. Doğrulama eklemek istediğiniz sınıfın güncelleştirme yöntemine tıklayın. Aşağıdaki kod, kısmi bir UpdateCLASSNAME yöntem seçtiğinizde oluşturulan koda benzer:

    partial void UpdateCLASSNAME(CLASSNAME instance)
    {
        if ((instance.COLUMNNAME == x) && (instance.COLUMNNAME = y))
        {
            string ErrorMessage = "Invalid data!";
            throw new System.Exception(ErrorMessage);
        }
    }