Je reçois un message d'erreur de clé primaire avec le code suivant. Je ne peux pas voir pour voir pourquoi cela peut être et je dois le trier. Quelqu'un peut-il aider avec une nouvelle paire d'yeux?Entity Framework Erreur de mise à jour
var events = (from e in nodes.Descendants("event")
select new Event
{
Event_ID = int.Parse(e.Attribute("event_id").Value),
Name = e.Attribute("name").Value,
Code = e.Attribute("code").Value,
Minute = e.Attribute("minute").Value != String.Empty ? int.Parse(e.Attribute("minute").Value) : 0,
Minute_Extra = e.Attribute("minute_extra").Value != String.Empty ? int.Parse(e.Attribute("minute_extra").Value) : 0,
Team = GetTeam(e.Attribute("team_id")),
Last_Updated = DateTime.Parse((FormatDateTime(e.Attribute("last_updated").Value)))
});
foreach (Event matchEvent in events)
{
//Check to see if this event exists
if (match.Events.Any(o => o.Event_ID == matchEvent.Event_ID))
{
Event theEvent = (from m in match.Events
where m.Event_ID == matchEvent.Event_ID
select m).FirstOrDefault();
//There is an event with this ID, so check its last updated flag
if (theEvent.Last_Updated < matchEvent.Last_Updated)
{
//Update the current event
theEvent.Event_ID = matchEvent.Event_ID;
theEvent.Name = matchEvent.Name;
theEvent.Code = matchEvent.Code;
theEvent.Minute = matchEvent.Minute;
theEvent.Minute_Extra = matchEvent.Minute_Extra;
theEvent.Team = matchEvent.Team;
theEvent.Last_Updated = matchEvent.Last_Updated;
}
}
//If the event is not there we need to add it
else
{
match.Events.Add(matchEvent);
}
myDb.SaveChanges();
MISE À JOUR 1: Ce qui suit est l'erreur que je reçois quand SaveChanges() est appelée:
{"Violation of PRIMARY KEY constraint 'PK_Matches_1'. Cannot insert duplicate key in object 'dbo.Matches'.\r\nThe statement has been terminated."}
MISE À JOUR 2: Je n'utilise pas l'insertion d'identité sur la table DB pour ce que cela est une importation provenant d'un service Web tiers dans lequel je dois conserver tous les identifiants. Je ne suis pas sûr si cela affectera le processus de mise à jour avec cadre d'entité? MISE À JOUR 3: Ok, quand j'active l'insertion d'identité, la mise à jour est réussie, mais je ne souhaite pas d'insertion d'indentité sur cette table car les ID sont transmis à partir d'un WebService et je dois conserver ces IDs.
Sur quelle ligne est l'erreur? Est-ce que l'erreur contient quelque chose dans le message qui pourrait être utile? –
Ce n'est pas si simple que vous avez oublié de marquer la propriété PK comme 'Auto Generated'? – Ozzy
Le PK n'est pas généré automatiquement dans ce cas, c'est peut-être mon problème? Cela consiste essentiellement à effectuer une importation à partir d'un service Web tiers où les ID sont déjà spécifiés? – Kevin