9

Sınıf devralma ve bu konudaki bir veritabanını yapılandırma ve varlık çerçevesini başarıya ulaşmadan kullanma ile ilgili daha önceki sorunlarım var. Bu yüzden görsel stüdyonun içindeki varlıkları yaratmaya ve hangi veritabanı tablolarının otomatik olarak oluşturduğuna bakmaya çalıştım.ADO.Net EF - model ilk yaklaşımda yabancı anahtar ilişkisini nasıl tanımlar?

Bu konuda Soyut ve Oyun İçeriği olan bir Varlık MediaItem var. Oyun, ConsoleID'ye karşılık gelen bir Konsol (Int) sahiptir. Ancak, veritabanını oluşturduğumda, MediaItems_Game tablosunda fazladan istenmeyen bir sütun (ConsoleTypes_ConsoleID) alırım. Neden böyle ve bunun olmasını nasıl engelleyebilirim? Teşekkürler. Öncelikle Modelinizin

enter image description here

cevap

25

muhtemelen yanlıştır. ConsoleType ve Game, bire bir ilişki içinde değildir (her konsol türü için tek bir oyununuz yoksa). 1 konsolun birden fazla oyun oynayabileceğini düşünüyorum. Yani bire-çok olmalı. Gerçek hayatta oyun birden fazla platformda yayınlanabilir, bu yüzden çoktan çoğa olmalıdır.

ConsoleType ve Game arasındaki ilişkiniz, yabancı anahtar olarak Console özelliğini kullanması gerektiğini bilmediğinden, kullanılmamış sütununuz var. Bağımsız ilişkilendirme kullanırsanız bu olur. Bağımsız kuruluşlar, varlık tasarımını bir varlıktan Entity tasarımcısındaki diğer varlığa çekerken kullanırlar. Yabancı anahtar ilişkisini kullanmalısınız. Bununla

Başlangıç ​​(ConsoleType den Game için beraberlik dernek - Eğer bire birçok ilişkiyi olması gerekir) kurmak:

enter image description here

ConsoleType ve Game arasında

seç ilişki özelliklerinde bir Başvurusal tıklayın kısıtlama:

enter image description here

enter image description here

modelinizi kaydedin ve tekrar veritabanını oluşturmak:Referans Kısıtlama yılında iletişim sadece ilişki kurmak.

+0

Tam olarak sorun buydu, çok teşekkürler (tekrar!) :) –

+0

Eğer 'çoktan fazla' bir ilişki varsa? Benim anlayışımdan olması gerekiyordu. – Guillaume

+0

@Guillaume: Çoktan çoğa ilişki kullanırken EF'deki başvuru kısıtlamalarını ayarlayamazsınız. –

İlgili konular