2017-10-18 8 views
0

Ich frage mich, warum bekomme ich Fehler bei der Verwendung von Code zuerst, aber nicht, wenn Datenbank zuerst. Um Ihnen einen kurzen Blick auf meine Anwendung das ist meine Klasse:Fehler bei der Verwendung von Code zuerst

[Table("Votes")] 
public class Vote { 
    [Key()] 
    public int Id { get; set; } 

    [ForeignKey("User")] 
    public int UserId { get; set; } 
    public virtual User User { get; set; } 

    [ForeignKey("Answer")] 
    public int AnswerId { get; set; } 
    public virtual Answer Answer { get; set; } 
} 

Und nach dieser Codezeile:

Vote v = new Vote(); 
v.UserId = 1; 
v.AnswerId = 1; 

using (var context = new DatabaseContext()) { 
    context.Votes.Add(v); 
    context.SaveChanges(); 
} 

Ich erhalte Fehler:

An unhandled exception of type 'System.Data.Entity.Infrastructure.DbUpdateException' occurred in EntityFramework.dll 

Additional information: An error occurred while updating the entries. See the inner exception for details. 

So ist der Fehler passiert, wenn ich code first mit SQLExpress Datenbank verwende. Wenn ich database first mit SQLite Datenbank verwende, arbeitet es wie ein Charme. Die gleichen Klassen, aber kein Fehler.

Mir ist aufgefallen, dass ich und v.Answer initialisieren muss, um Fehler zu vermeiden. Aber warum? In database first war es unnötig.

+0

Konnten Sie versuchen, sie auf null zu setzen und zu versuchen? –

+0

@KeyurPATEL Ja und es funktioniert immer noch nicht. Es funktioniert nur, wenn ich neue Instanzen von 'User' und' Answer' erzeuge und sie den 'v' Objekteigenschaften zuweise. – Dawvawd

+0

Können Sie bitte fügen Sie Ihren Modell Builder bitte –

Antwort

Verwandte Themen