'Système.Les données.De l'entité.L'Infrastructure.DbUpdateException' s'est produite dans EntityFramework.dll
J'ai écrit un simple code (client-serveur basée sur WCF et Windows).
j'ai essayé de mettre à jour la db de sorte que j'ai pu tester mon code et je l'ai rencontrée l'exception ci-dessus.
Aucune idées de comment le résoudre?
//For testing
public void updateTable()
{
using (var db = new overlayDBEntities())
{
var overlaydb = new overlayData
{
DeviceId = "1111",
TimestampUTC = new DateTime(1990, 1, 1, 9, 9, 9),
OverlayData1 = "Yoash And Maayan"
};
db.overlayData.Add(overlaydb);
try
{
db.SaveChanges();
}
catch(Exception ex)
{
Console.WriteLine(ex.Message);
}
var overlaydb1 = new overlayData
{
DeviceId = "1111",
TimestampUTC = new DateTime(2000, 2, 2, 10, 10, 10),
OverlayData1 = "seconed seconed seconed "
};
db.overlayData.Add(overlaydb);
try
{
db.SaveChanges();
}
catch (Exception ec)
{
Console.WriteLine(ec.Message);
}
}
}
Ex.ToString ou le débogueur pour obtenir certaines informations utiles.
Vous avez besoin d'une sorte d'exception interne pour obtenir les détails de votre problème, le message d'exception à signaler juste nous dit que la DB réussi à mettre à jour, un intérieur d'exception aura probablement un message d'erreur SQL.
une idée de comment je le faire?
je peux voir qu'il se passe après exe cette ligne
'iisexpress.exe' (Géré (v4.0.30319)): Chargé 'C:\Windows\assembly\GAC_MSIL\Microsoft.SqlServer.Types\11.0.0.0__89845dcd8080cc91\Microsoft.SqlServer.Types.dll'
Vous avez besoin d'une sorte d'exception interne pour obtenir les détails de votre problème, le message d'exception à signaler juste nous dit que la DB réussi à mettre à jour, un intérieur d'exception aura probablement un message d'erreur SQL.
une idée de comment je le faire?
je peux voir qu'il se passe après exe cette ligne
'iisexpress.exe' (Géré (v4.0.30319)): Chargé 'C:\Windows\assembly\GAC_MSIL\Microsoft.SqlServer.Types\11.0.0.0__89845dcd8080cc91\Microsoft.SqlServer.Types.dll'
OriginalL'auteur user2656851 | 2013-10-17
Vous devez vous connecter pour publier un commentaire.
Si vous avez besoin de mettre à jour la Ligne si il Existe déjà dans la base de données afin de ne pas les utiliser en contexte.Ajouter();vous pouvez l'utiliser comme suit.
OriginalL'auteur Thilina H
Je pense que le problème est le type de votre datetime. sqlsever a plus d'un datetime. si vous vérifiez votre intérieur exception, vous pouvez voir le type que vous tentez de mettre à votre table et le type dont il a réellement besoin. la conversion ne peut pas être fait automatiquement et vous devez changer dans le tableau ou de les convertir dans votre code.
il peut être datetime, datetime2 (7), etc.
OriginalL'auteur noushin joudzadeh
Cette même Erreur s'affiche également lorsque l'utilisateur oublie d'ajouter
Primery key
en particulier de la table .. et puis ajouter des données par l'application.OriginalL'auteur Usman lqbal
Selon Lan,
"Le message d'erreur tous les détails que vous devez savoir:
Informations supplémentaires: Le modèle de la sauvegarde de la " AppraisalDBContext contexte a changé depuis la base de données a été créé.Pensez à utiliser le Code Premières Migrations à la mise à jour de la base de données (http://go.microsoft.com/fwlink/?
Cela signifie que l'un de vos cours d'utilisation dans le AppraisalDBContext a changé, mais la base de données n'a pas été mis à jour, est maintenant hors de date. Vous avez besoin de mettre à jour ce Code à usage Premier des migrations."
De Le Post Original
OriginalL'auteur Freddy Yang
Plusieurs enregistrements de données avec la même clé primaire de chevauchement lors de la
add
, causant la même erreurVous devriez revoir votre clé primaire paramètres
OriginalL'auteur Triet Pham
OriginalL'auteur AJIT AGARWAL
Ci-dessous la procédure pour résoudre le Système.Les données.De l'entité.L'Infrastructure.DbUpdateException.
Veuillez suivre les instructions.
Codage Heureux !!!
https://msdn.microsoft.com/en-us/data/dn579398.aspx
Meilleures Salutations,
Thet Tin Oo
OriginalL'auteur user3218010