WEBMAIL
KONTROLLPANEL
domainsearch

Hur använder jag ASP.NET MVC3 och Entity Framework 4.1 CodeFirst på Binero?

Det första problemet är att EF4.1 vill skapa en databas som heter som din DbContext. Hos oss heter din databas något med ditt kundnummer först, och du kan inte döpa din DbContext till det.

Lösningen på detta är att tvinga din DbContext att använda en ConnectionString. För att göra det så skriv till följande till din DbContext:

   public MyDbContext() : base("ConnectionStringName")

Det vill säga se till att konstruktorn till din DbContext ärver av sig själv med namnet på din ConnectionString som parameter.

Nästa problem är att EntityFramework CodeFirst vill köra DropAndCreate på databasen när du förändrar strukturen på dina klasser. Vi stödjer inte detta och därför måste du få EntityFramework att istället bara återställa tabellerna. Nu finns det ingen sådan lösning out-of-the-box, men däremot finns det en att installera på NuGet.

Med den installerad ser klassen ut så här:

namespace MyProject.Models 
{
    public class MyDbContext : DbContext
    {
        public MyDbContext() : base("ConnectionStringName")
        {
            System.Data.Entity.Database.SetInitializer(new DontDropDbJustCreateTablesIfModelChanged<MyProject.Models.MyDbContext>());
        }
        public DbSet<MyProject.Models.MyClass> Elephants { get; set; }
    } 
}

Så enkelt kan det vara när man vet hur man gör. Lycka till!

Tack till Stefan Bergfeldt för informationen






Bäst i test två år i rad - Internetworld

Rekommenderas av InternetworldVi är prisade för vår goda support, höga funktionalitet och kontrollpanel.

Kundservice