Je me demande pourquoi je reçois une erreur lors de l'utilisation du code d'abord, mais pas lorsque la base de données d'abord. Pour vous donner un rapide coup d'oeil à ma demande c'est ma classe:Erreur lors de l'utilisation du code d'abord
[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; }
}
Et après cette ligne de code:
Vote v = new Vote();
v.UserId = 1;
v.AnswerId = 1;
using (var context = new DatabaseContext()) {
context.Votes.Add(v);
context.SaveChanges();
}
Je reçois l'erreur:
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.
Ainsi l'erreur se produit lorsque j'utilise code first
avec la base de données SQLExpress
. Lorsque j'utilise database first
avec la base de données SQLite
, cela fonctionne comme un charme. Les mêmes classes, mais pas d'erreur.
J'ai remarqué que pour éviter l'erreur, je dois initialiser v.User
et v.Answer
. Mais pourquoi? Dans database first
, il était inutile.
Pourriez-vous essayer de les définir sur null et essayer? –
@KeyurPATEL Oui et cela ne fonctionne toujours pas. Il ne fonctionne que lorsque je crée de nouvelles instances de 'User' et' Answer' et les assigne aux propriétés de l'objet 'v'. – Dawvawd
Pouvez-vous s'il vous plaît ajouter votre constructeur de modèle s'il vous plaît –