2011-09-28 5 views
0

Je rencontre des problèmes lors de l'insertion de données dupliquées dans la base de données, est-ce que je transmets un mauvais paramètre dans le IEnumerable<Location>?Problème de données en double C# Problème

Il ne soulève aucune erreur lorsque je débogue l'application.

IEnumerable<Location> locations = context.Locations.Where(l => l.FacebookID == facebookID); 

if (locations.Count() == 0) 
{ 
    Location newLocation = new Location(); 

    newLocation.FacebookID = locationID; 

    newLocation.Description = locationValue; 

    IGeoCoder geoCoder = new GoogleGeoCoder(GoogleAPIKey); 
    Address[] addresses = geoCoder.GeoCode(locationValue); 

    if (addresses.Length > 0) 
    { 
     // Let's assume the first one is good enough 
     Address address = addresses[0]; 

     newLocation.Latitude= address.Coordinates.Latitude.ToString(); 
     newLocation.Longitude = address.Coordinates.Longitude.ToString(); 
     // Use location.Latitude and location.Longitude 

    } 

    context.Locations.AddObject(newLocation); 
    context.SaveChanges(); 
} 

Répondre

4

Je devine que vous ne vouliez pas faire:

newLocation.FacebookID = locationID; 

Mais plutôt ceci:

newLocation.FacebookID = facebookID; 

Fondamentalement, vous créez plusieurs enregistrements, avec le même facebookId, que vous en fait utilisé l'emplacementID à la place.

+0

IEnumerable emplacements = context.Locations.Where (l => l.FacebookID == locationID); semblait faire l'affaire pour moi, en changeant de facebook = facebookid à locationID a fait l'affaire :) –