2009-12-18 17 views
12

Şirketimizdeki büyük bir veritabanının yeniden tasarımı, veritabanındaki bileşik birincil anahtarların kapsamlı kullanımını sağlar. Varlık Framework 4.0 bu db ile çalışırkenEntity Framework 4.0 ile Kompozit DB anahtarları

bu herhangi zorluklara neden olur, performans etkilerini unutmak? Veritabanı yapısının değişmesi olası değildir ve "felsefi" tartışmayı aramıyorum ama pratik etkiler neler?

Jeremy Miller göre, "Kompozit anahtarı genel sert Nesne/İlişkisel haritalama ve sebat her türlü yapar." ama nedenini gerçekten söylemiyor. Bu, Entity Framework 4.0'ın anahtarları nasıl ele aldığının bir göstergesi midir?

cevap

13

Hayır, EF4, bileşik anahtarları destekliyor.

sorun yedek anahtar ve anahtarların bir tablodur. Her modele yalnızca tek bir tuş atayabilirsiniz; Bu anahtarın birden çok alanı olabilir, ancak tasarımcı bakış açısına sahip olabilirsiniz. Xml'yi manuel olarak düzenlemekten veya yalnızca eşleme kodundan emin değil. Aynı masada bir kompozit ve vekil anahtarı gerekiyorsa

Bir Kimlik ve bir anahtar olarak bir alan ayarlayabilirsiniz. Identity (Id) alanı ObjectContext veya ObjectStateTracker tarafından kullanılmayacak, ancak artıracaktır.

8

Ben EF4'ü ve kompozit tuşları ile ilgili sorunlar vardı. Birleştirme tablosunda birden fazla anahtarda bileşen olarak kullanılan sütunları desteklemez.

fazla ayrıntı için önceki soruya Mapping composite foreign keys in a many-many relationship in Entity Framework bakınız. bunun fındık ise ilişkilerde her iki ortak tuşunu kullanmak bir birleşim tablosu (a pek çok ilişki açıklayan) olduğu zaman,

Hata 3021 gibi bir hata alırsınız olmasıdır: haritalama Problem fragmanları ...: tablo sayfa görüntüleme aşağıdaki kolonların her biri birden kavramsal yan özelliklerine eşleştirilir: PageView.Version (PageView_Association.View.Version, PageView_Association.Page.Version)

eşleştirilir

Çevresindeki tek yol kopyalamaktı. oraya sahip olmanın amacını yitiren sütun.

İyi şanslar!

+6

Gülünç can sıkıcı. –