2016-07-03 4 views
0

Ich habe erste Code-Projekt MVC, aber ich erhalte unten Fehler error picNullException Fehler in MVC ersten Code-Einheit

Erste-Code! Daher gibt es keine Standarddatenbank.

Modellklasse

public class Applicant 
{ 
    public int ApplicantID { get; set; } 
    public string UserName { get; set; } 
    public string Password { get; set; } 
    public int PhoneNumber { get; set; } 
} 

Kontextklasse:

public class Context : DbContext 
{ 
    public List<Applicant> Applicants { get; set; } 
    protected override void OnModelCreating(DbModelBuilder modelBuilder) 
    { 
     modelBuilder.Entity<Applicant>().Property(r => r.ApplicantID) 
        .HasDatabaseGeneratedOption(DatabaseGeneratedOption.Identity); 
    } 
} 

Antragsteller repasority Klasse:

public Applicant Create(string username, string password, int phoneNumber, out int existResult) 
{ 
    if (context.Applicants.Where(x => x.UserName == username).ToString() != null) 
    { 
     applicant = new Applicant() 
     { 
      UserName = username, 
      Password = password, 
      PhoneNumber = phoneNumber, 
     }; 
     context.Applicants.Add(applicant); 
     existResult = 1; 
     return applicant; 
    } 
    existResult = 0; 
    return applicant; 
} 

Und ich Code unten zu meinem web.config in meiner Web-Lösung hinzugefügt:

<connectionStrings> 
    <add connectionString="Data Source=.;Catalog=Homi;Integrated Security=True" providerName="System.Data.SqlClient" name="Context" /> 
</connectionStrings> 
</configuration> 
+0

Hallo ist, vielen Dank für Ihre Pflege, was meinst du genau –

+0

ist etwas weniger –

+0

Blick auf diese:!?. http://stackoverflow.com/q/4660142/861716 Nur * Sie * kann den Code debuggen und prüfen, was Null ist (gilt auch für 'ArgumentNullException') Side note:' context.Applicants.Where (x => x.UserName == Benutzername) .ToString() 'gibt die Abfragezeichenfolge zurück. –

Antwort

1

ok Ich finde die Antwort.

zuerst änderte ich Kontextklasse dazu wie unten

diesen Teil hinzufügen:

public Context() 
    { 
     base.Configuration.LazyLoadingEnabled = false; 
     base.Configuration.ProxyCreationEnabled = false; 
     base.Configuration.ValidateOnSaveEnabled = false; 
    } 

und geänderte Zeichenfolge DbSet:

public DbSet<Applicant> Applicants { get; set; } 

an zweiter Stelle

ein cooler Fehler: D Ich habe vergessen, dies zu tun:

Projekt -> Manage NuGet Pakete ...

Hinweis: Wenn Sie nicht die NuGet Pakete verwalten haben ... Option sollten Sie die neueste Version von NuGet installieren

Wählen Sie die Registerkarte Online

wählen Sie das EntityFramework Paket

Klicken Sie auf Installieren

schließlich für einige Stelle des Codes, wenn oben Wege nicht funktioniert versuchen Sie {} catch {} war letzte Lösung!

und Ende, wenn ich meine Web nichts gespeichert in meinem db laufen :( war es sehr wichtig zu setzen "context.SaveChanges();" in den Bewerber Repository nach "context.Add (Antragsteller),"

, die alle tnx