public override void ProcessRecord(string[] tokens) { currentCount++; string locationdesc = tokens[9]; string featuredesc = tokens[10]; //this should throw if it doesn't find anything - should never happen int locationId = GetLocationID(locationdesc); if (!features.Exists(f => f.LocationID == locationId && f.Name == featuredesc)) { Featuredesc feature = new Featuredesc { LocationID = locationId, Name = featuredesc }; features.Add(feature); _database.Featuredesc.Add(feature); if (currentCount > commitCount) { _database.SaveChanges(); _database.Dispose(); _database = new MarbleDataBase(); _database.Configuration.AutoDetectChangesEnabled = false; var featurecheck = from f in _database.Featuredesc where f.FeaturedescID == feature.FeaturedescID select f; foreach (Featuredesc fcheck in featurecheck) { Console.WriteLine("{0} {1} {2}", fcheck.FeaturedescID, fcheck.LocationID, fcheck.Name); } currentCount = 0; } } }