2011-06-11 31 views
17

No puedo encontrar DataBase en System.Data.Entity.System.Data.Entity.DataBase no se puede encontrar

¿Alguien sabe por qué?

Gracias.

+0

por cierto ¿quiere aceptar una respuesta? –

+0

aceptar respuesta yeeeeees? :) –

+2

has aceptado la respuesta incorrecta. Sé que lo presiono aquí, pero lo respondí primero (23 de junio <29 de junio). –

Respuesta

21

No tiene que importar System.Data.Entity.Database. El System.Data.Entity es suficiente. Use Database.SetInitializer en lugar de DbDatabase.SetInitializer.

Si se ha perdido lo que, la clase se llama base de datos sin "DB"

8

Debe hacer referencia al ensamblaje EntityFramework.dll que es donde se declara la clase Database. Puede instalarlo desde el NuGet package correspondiente.

+0

la referencia a EntityFramework se agregó a mi proyecto pero no puedo encontrar DataBase en System.Data.Entity, System.Data.Entity Available pero no DataBase en él. – fligant

+0

@fligant, probablemente porque la clase se llama 'Database' y no' DataBase'. Observe la diferencia? –

+0

System.Data.Entity.Database es su espacio de nombres no clase, donde puedo usar DbDatabase.SetInitializer – fligant

3

Tengo mismo problema. La respuesta de Daz y Darin me dio algunas pistas.

En CTP, el nombre de clase se llama "Base de datosDb" en el espacio de nombres System.Data.Entity.Database.

Pero en mi versión que es EF 4.1, la clase se llama "Base de datos" y está en System.Data.Entity. El espacio de nombres System.Data.Entity.Database se ha ido al menos en EF4.1

1

Supongo que se actualizó de Enterprise Library 4 CTP5 a Enterprise Library 4.1.

Los espacios de nombres cambiaron un poco y ahora encontrará las clases que necesita en diferentes espacios de nombres. Como se muestra en la respuesta de Kasper Skov aquí, la clase DbDatabase ahora está en System.Data.Entity y se renombra a Database.

Todavía no he resuelto dónde se ha movido IConfigurationConvention como System.Data.Entity.ModelConfiguration.Conventions.Configuration es otro espacio de nombres difunto.

0

En mi versión, Entity Framework 4.1.10715.0 ', System.Data.Entity.Database es un espacio de nombres y no una clase. DbDatabase ES una clase en ese espacio de nombres y contiene el método SeInitializer. Qué PITA encontrar cuando todo lo que he leído contradice esto.

Tuve que usar lo siguiente para obtener la demo de Steven Sanderson para rehacer mi base de datos.

System.Data.Entity.Database.DbDatabase.SetInitializer(
    new System.Data.Entity.Database.DropCreateDatabaseIfModelChanges<Mvc3ScaffoldDemo.Models.Mvc3ScaffoldDemoContext>()); 
+0

@Bill mine es el marco de la entidad 4.1.10715.0, instalado por nuget .... System.Data.Entity.Database es una clase, no un espacio de nombres y no tiene DbDatabase ....... – dfang

0

actualizar sólo sus Entity Framework para hacer eso simplemente haga clic derecho en la solución y seleccionar "Administrar NuGet paquete" y buscar con "ADO.NET Entity Framework". instale la última versión (6.1.3 o) o use "NuGet package console" enter image description here

Cuestiones relacionadas