2011-03-31 10 views
27

Estoy probando primero el código de Entity Framework. Parece que no puedo encontrar el ensamblado/espacio de nombres para usar para RecreateDatabaseIfModelChanges en WPF 4.0. ¿Es esta una función ASP.NET-only? Si no, ¿a qué ensamblaje debería hacer referencia?¿RecreateDatabaseIfModelChanges está disponible en WPF?

Aquí está mi código:

using System; 
using System.Data.Entity; 
using System.Windows; 
using CodeFirstTester.Models; 

namespace CodeFirstTester 
{ 
    public partial class App : Application 
    { 
     static App() 
     { 
      // this fails: 
      Database.SetInitializer(new RecreateDatabaseIfModelChanges<NerdDinners>()); 

      // The type or namespace name 'RecreateDatabaseIfModelChanges' 
      // could not be found (are you missing a using directive or 
      // an assembly reference?)     

      using (var nerdDinners = new NerdDinners()) 
      { 
       var dinner = new Dinner() 
       { 
        Title = "Party at Scott's House", 
        EventDate = DateTime.Parse("12/31/2010"), 
        Address = "Building 40", 
        HostedBy = "[email protected]" 
       }; 
       nerdDinners.Dinners.Add(dinner); 
       nerdDinners.SaveChanges(); 
      } 
     } 
    } 
} 
+0

No pude encontrar ninguna documentación de MSDN sobre esa clase. ¿Estás seguro, lo convirtió en RTM? –

+2

Encontré esto: http://www.scottleckie.com/2011/03/rc-of-entity-framework-4-1-including-ef-code-first-is-released/. Dice que esta estrategia se llama ahora 'DropCreateDatabaseIfModelChanges', pero tampoco encontré nada sobre eso en MSDN ... extraño –

+1

@Daniel Hilgarth: la documentación está aquí: http://msdn.microsoft.com/en- us/library/gg696142% 28v = VS.103% 29.aspx También están las tres implementaciones disponibles de 'IDatabaseInitializer' listadas, incluyendo' DropCreateDatabaseIfModelChanges'. – Slauma

Respuesta

51

El inicializador se llama DropCreateDatabaseIfModelChanges. Se puede encontrar en EntityFramework.dll (EF 4.1) en el espacio de nombres System.Data.Entity.

+2

Gracias Ladislav! Supongo que cambiaron el nombre de la estrategia cuando pasaron de CTP a RC. – devuxer

+1

Aaaaah ... estúpido cambio de nombre! ¡¡Gracias por la respuesta!! –

Cuestiones relacionadas