2011-03-21 18 views
7

i veritabanını varolan bir bazı Varlık Çerçeve Kod İlk programlama yapmak çalışıyorum .. ama benim Sql Profiler bu kodu görüyorum: -Entity Framework Code-First (varolan bir DB ile) neden bir EdmMetadata tablosundan veri almaya çalışıyor?

cehennem bu EdmMetadata tablodur Ne
SELECT TOP (1) [Extent1].[Id]  AS [Id], 
        [Extent1].[ModelHash] AS [ModelHash] 
FROM  [dbo].[EdmMetadata] AS [Extent1] 
ORDER BY [Extent1].[Id] DESC 

ve neden yapmak Kimlik kodum ve ModelHash'ı oradan almaya çalışıyor mu?

Unutmayın, varolan bir DB'ye karşı çalışıyorum.

Alkış :)

+0

Bu tablo benim Dinamik Veri web olarak belirdiğini gördüm, yaklaşım aşağıya kaldırıldı önerdi. –

cevap

10

mevcut veritabanına karşı hiçbir Kod-İlk yoktur. Veritabanınız varsa, önce Database-yapıyorsunuz. Böyle bir durumda haritanız veritabanı tarafından yönlendirilir.

EdmMetadata tablosu, geçerli kod ilk modelinin karmasını korur ve veri tabanının yeniden oluşturulabilmesi için modelin değişikliklerini algılamasına izin verir DbContext. Bu özellik varsayılan olarak açıktır. Sen OnModelCreating yılında kongre kaldırarak kapatabilirsiniz:

modelBuilder.Conventions.Remove<IncludeMetadataConvention>(); 
+9

"Varolan bir veritabanına karşı İlk Kod yoktur". er .. emin misin ?? EF takımı aksini söylüyor: http://blogs.msdn.com "* Bu örneklerde Kod İlk veritabanı şemasını oluşturmaya fakat aynı müdürler '7. * hariç olmak üzere, mevcut bir veritabanına haritalama için geçerli göstermek için gidiyor" /b/adonet/archive/2011/03/15/ef-4-1-code-first-walkthrough.aspx –

+1

Akıcı haritalamanın mevcut db ile çalışmadığı anlamına gelmedim. Öyle ama ilk kod değil. Kod ilk olarak, pocos oluşturup ilk eşleştirmeyi ve bu bilgilerden veritabanı oluşturduğunuz anlamına gelir. –

+2

Bu benim için bir yıkamadır ... ilk ifadenizde aşırı anlam ifade ediyordunuz (-1). Ama ikinci beyanı (1) –

İlgili konular