Aracılığıyla paylaş


SQL-CLR Özel Tür Eşlemeleri

SQLMetal komut satırı aracını Nesne İlişkisel Tasarımcısı (O/R Tasarım Aracı) kullandığınızda SQL Server ile ortak dil çalışma zamanı (CLR) arasında tür eşlemesi otomatik olarak belirtilir.

Özelleştirilmiş eşleme gerçekleştirilmezse, bu araçlar SQL-CLR Tür Eşlemesi'nde açıklandığı gibi varsayılan tür eşlemeleri atar. Eşlemeleri bu varsayılan değerlerden farklı yazmak istiyorsanız, tür eşlemelerinde bazı özelleştirmeler yapmanız gerekir.

Tür eşlemelerini özelleştirirken önerilen yaklaşım, değişiklikleri bir aracı DBML dosyasında yapmaktır. Ardından, SQLMetal veya O/R Tasarım Aracı ile kod ve eşleme dosyaları oluştururken özelleştirilmiş DBML dosyanız kullanılmalıdır.

Kod ve eşleme dosyalarından nesnesinin DataContext örneğini oluşturduğunuzda DataContext.CreateDatabase yöntemi, belirtilen tür eşlemelerini temel alan bir veritabanı oluşturur. Eşlemelerde belirtilen CLR type özniteliği yoksa, varsayılan tür eşlemeleri kullanılır.

SQLMetal veya O/R Tasarım Aracı ile özelleştirme

SQLMetal ve O/R Tasarım Aracı, kod dosyasının içinde veya dışında tür eşleme bilgilerini içeren bir nesne modelini otomatik olarak oluşturabilirsiniz. Bu dosyaların üzerine SQLMetal veya O/R Tasarım Aracı yazıldığından, eşlemelerinizi her yeniden oluşturduğunuzda, özel tür eşlemeleri belirtmek için önerilen yaklaşım bir DBML dosyasını özelleştirmektir.

SQLMetal veya O/R Tasarım Aracı ile tür eşlemelerini özelleştirmek için önce bir DBML dosyası oluşturun. Ardından, kod dosyasını veya eşleme dosyasını oluşturmadan önce DBML dosyasını istediğiniz tür eşlemelerini tanımlamak için değiştirin. SQLMetal ile, tür eşleme özelleştirmelerinizi yapmak için DBML dosyasındaki ve DbType özniteliklerini el ile değiştirmeniz Type gerekir. O/R Tasarım Aracı ile değişikliklerinizi Tasarım Aracı içinde yapabilirsiniz. O/R Tasarım Aracı kullanma hakkında daha fazla bilgi için bkz. Visual Studio'da LINQ to SQL Araçları.

Not

Bazı tür eşlemeleri, veritabanına veya veritabanından çeviri yaparken taşma veya veri kaybı özel durumlarına neden olabilir. Herhangi bir özelleştirme yapmadan önce SQL-CLR Tür Eşlemesi'nde Tür Eşleme Çalışma Zamanı Davranış Matrisi'ni dikkatle gözden geçirin.

Tür eşleme özelleştirmelerinizin SQLMetal veya O/R Tasarım Aracı tarafından tanınması için, kod dosyanızı veya dış eşleme dosyanızı oluştururken bu araçların özel DBML dosyanızın yolu ile birlikte sağlandığından emin olmanız gerekir. Tür eşleme özelleştirmesi için gerekli olmasa da, tür eşleme bilgilerinizi her zaman kod dosyanızdan ayırmanız ve ek dış tür eşleme dosyası oluşturmanız önerilir. Bunun yapılması, kod dosyasının yeniden derlenmesini gerektirmeyerek biraz esneklik bırakır.

Veritabanı Değişikliklerini Ekleme

Veritabanınız değiştiğinde DBML dosyanızı bu değişiklikleri yansıtacak şekilde güncelleştirmeniz gerekir. Bunu yapmanızın bir yolu, otomatik olarak yeni bir DBML dosyası oluşturmak ve ardından tür eşleme özelleştirmelerinizi yeniden yapmaktır. Alternatif olarak, yeni DBML dosyanızla özelleştirilmiş DBML dosyanız arasındaki farkları karşılaştırabilir ve özel DBML dosyanızı veritabanı değişikliğini yansıtacak şekilde el ile güncelleştirebilirsiniz.

Ayrıca bkz.