Microsoft Visual Studio Lightswitch Tablo (Entity) İlişkileri – Bölüm 3

Bir uygulama kapsamında oluşturulacak veri tabanının tek bir tablo ile sınırlandırılması düşünülemez. Verilerin paylaştırılması, gerekli verilerin tablolar halinde sunulması hem verilere ulaşmada hem de verilerin tekrar edilmesi konusunda programcılara rahatlıklar sağlamaktadır.

Düzgün tasarlanmış bir veri tabanı;

Veri tekrarını en aza indirir.

Oluşturulan raporların eksiksiz ve sorunsuz olarak çalışmasını sağlar.

Visual Studio Lightswitch bize tablolarımızı oluşturmak için bir Data Designer aracı sunmaktadır. Bu konuda daha önceki makalelerimizde bir anlatım yapmaya çalışmıştık. Yine Data Designer aracı ile tablolarımızı oluşturup bu tablolar arasında ilişkilerimiz tanımlayabilmekteyiz.

Şimdi bu ilişki tiplerini ve bu ilişkilerin Microsoft Lightswitch ile nasıl uygulanacağına bakalım. Bir önceki makalemizde başlamış olduğumuz Müşteri Takip uygulamamız üzerinden işlemlerimize devam edebiliriz.

En son uygulamamız için Musteri adında bir entity oluşturmuş ve bunun için bir veri giriş ekranı eklemiştik. Şimdi bu entity tasarımını biraz daha çeşitlendirme ve ilişkileri tanımlama zamanı.

Oluşturduğumuz Musteri tablosu üzerinde görüldüğü üzere her müşteri tanımında doldurulması gereken verilerin bulunması söz konusudur. Eğer bir müşterinin birden fazla adresini kayıt altına almak istersek böyle bir tablo üzerinde ikinci bir müşteri olarak tanımlamasını yapmamız gerekecektir. Bu şekilde bir çalışma hem verilerimizin tekrarını hem de raporlarımızın yanlış sonuçlar döndürmesine sebep olacaktır. (2 Adresi olan 2 Müşteri gibi)

Bu durumun çözümü için yapılması gereken bir Adres tablosu oluşturmak ve bu tablo üzerinde müşteri tablosu arasında Birden Çoğa İlişki oluşturmaktır. Yani bir müşterinin birden fazla adres bilgisinin olmasını sağlamaktır. Bunun için ilk önce adres tablomuzu oluşturmamız gerekmektedir.

Solution Explorer üzerinden Data Sources altında bulunan ApplicationData nesnesinde Add Table komutu ile yeni tablo oluşturma işlemlerine başlayabiliriz.

Temel olarak tablomuzu aşağıdaki şekilde oluşturabiliriz.

Burada ki problemimiz Musteri tablosu ile birlikte AdresBilgileri tablosunun bir ilişki içinde olmamasıdır. Bu ilişkiyi tanımlamak için yine Data Designer aracından yararlanacağız. Tablolar arası ilişkiler yine Data Designer’ın üst bölümünde bulunan Relationship üzerinden yapılmaktadır. Relationship ile birlikte bize yeni ilişki tanımlama sayfası açılacaktır.

Bu pencere üzerinde yapmamız gereken ilk iş ilişki tipi ayarlamak için tablo bilgileri seçmektir. From mevcut tablomuzu temsil ederken To kısmında hangi tablo ile ilişki kurmak istediğimizi belirteceğiz.

Ardından Multiplicity bölümünden ilişki tipini belirtmemiz gerekmektedir. On Delete Behavior bölümünden silme işlemi durumunda bu ilişkinin nasıl davranması gerektiği belirtilebilmektedir.

İlişki penceresi onaylandığı zaman Data Designer üzerinden ilişkinin durumu görülebilmektedir.

Müşteriler için adreslerin ilişkili tablo olarak kayıt altına alınması işlemini yerine getirmiş bulunmaktayız. Yine aynı şekilde Telefon bilgileri için bir çalışma yaparak müşteri telefonlarının birden fazla olması durumunu ayarlayalım.

İlk önce müşterilerin telefon numaralarını kayıt altında tutmak için entity bilgimizi oluşturalım. Bu entity üzerinde TelefonTanimi isimli alan için bir seçim listesi oluşturarak gerekli bilgileri girmemiz gerekmektedir. Bu seçimli liste ile kullanıcılar telefon numaralarının girişlerini yaparken numarasının tanım bilgisini bir combobox aracılığı ile gireceklerdir.

Entity bilgisinin tanımlanmasından sonra tablo ilişkilerinin ayarlanması gerekmektedir. Bu ayarlama bir müşteri bilgisine karşılık birden fazla telefon bilgisi yani birden çoğa ilişki tanımı içermelidir.

İlişki tanımımız tamamlandığı zaman oluşacak Data Designer tasarımı aşağıdaki şekilde olacaktır.

Şimdi bu ilişki yöntemlerinden yararlanarak ekran tasarımımızı yapabiliriz.

Bunun için Solution Explorer bölümünde bulunan Screens bölümünde Add Table ile ekran ekleme penceresini açabiliriz.

Açılan sayfa üzerinde kullanmak istediğimiz ekran bilgisini, kullanmak istediğimiz entity bilgisini ve ekranın ismini tanımlayarak ekranımızı uygulamamız içerisinde oluşturmamız gerekmektedir.

Bu bölümde dikkat etmemiz gereken ekran olarak List and Details Screen seçtiğimiz de içerik olarak hangi tabloların da (ilişkili olan) ekran üzerinde görünmesini istediğimizi seçebiliriz.

Ekranımızı uygulamamıza ekledikten sonra çalıştırdığımız sol menü üzerinde ekranımızın bilgisinin geldiğini görebiliriz. Ekranımızı çalıştırdığımız zaman Müşteri bilgilerine ve müşteri tablosu ile ilişkili diğer tablo bilgilerine tek bir ekran üzerinden ulaşabileceğiz.

Ekrandan da görüldüğü gibi ilişkili tablolarımız bir tab sayfası olarak sağ alt bölümde oluşmaktadır. Adres ve Telefon bilgileri girildiği zaman sol tarafta seçili olan müşteri ile ilişkili olarak bu verile tutulacak ve gerekli durumlarda sorgulama işlemlerinde kullanılabilecektir.

Kaynak | Onur Karakuş : http://www.cozumpark.com/blogs/yazlim/archive/2012/01/29/microsoft-visual-studio-lightswitch-tablo-entity-li-kileri-b-l-m-3.aspx

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s