tek yön:Varlık Çerçeve 6 opsiyonel İki tablo var ilişki
Client
------------------------
Id (string) <-- PrimaryKey
Name (string)
Number (int)
Department:*
------------------------
Id (int) <-- Primary key
Name (string)
ClientNumber (int?)
Client (Client, virtual)
.....
Şimdi (ClientNumber kullanarak) Müşteriye Bölümü'nden isteğe bağlı bir ilişki oluşturmak istiyorum. Bölüm sınıfında (İstemci) sanal bir özellik oluşturdum ve şimdi EntityTypeConfiguration kullanarak ilişkiyi yapılandırmam gerekiyor.
Veritabanı içinde yapılandırılmış yabancı anahtar yok veritabanında yapılandırılmış ve ben veritabanını değiştiremiyorum. Varlık (sınıf) İstemcisini de değiştiremiyorum.
Bu nedenle EntityFramework'a, İstemci sınıfındaki ClientNumber öğesinin, İstemci sınıfındaki Number özelliğine (isteğe bağlı olarak) ilişkin olduğunu bildirmem gerekir.
Ama Bölümü ClientNumber Müşterinin Numara mülk değil, Müşterinin birincil anahtar ile ilgilidir EF anlatmak anlamaya olamaz. (İstemci varlık sınıfını değiştirmeden)
düzenleme: İstemcide Numara özelliği, her giriş için benzersizdir.
ilişki böyle bir sql deyimi yol açmalıdır:
SELECT .....
FROM Department D LEFT OUTER JOIN Client C ON (D.ClientNumber = C.Number)
Bu Linq katılır kullanarak yapmak kolaydır, ama sadece iyi olurdu:
dbContext.Departments.Include(d => d.Client)
sanal kullanılarak İstemci (varsa) içeren bir sınıf sınıfı özelliği
birincil anahtar sütunlarını kullanmadan varlık çerçevesinde ilişkilerini oluşturmak için hala da mümkün değildir. Bu ilişkiyi gerçekleştirmek istiyorsanız, istemci Kimliği sütununu yabancı anahtar sütunu olarak eklemeniz gerekir. Eğer bir şekilde istenmediyse, bu ilişkiyi modellemek için bir görünüm yaratabilirsiniz. –