I have a scenario where I need to synchronize a database table with a list (XML) from an external system.
I am using EF but am not sure which would be the best way to achieve this in terms of performance.
There are 2 ways to do this as I see, but neither seem to be efficient to me.
Call Db each time -Read each entry from the XML -Try and retrieve the entry from the list -If no entry found, add the entry -If found , update timestamp -At end of loop, delete all entries with older timestamp.
Load All Objects and work in memory
- Read all EF objects into a list.
- Delete all EF objects
- Add item for each item in the XML
- Save Changes to Db.
The lists are not that long, estimating around 70k rows. I don't want to clear the db table before inserting the new rows, as this table is a source for data from a webservice, and I don't want to lock the table while its possible to query it.
If I was doing this in T-SQL i would most likely insert the rows into a temp table, and join to find missing and deleted entries, but I have no idea how the best way to handle this in Entity Framework would be.
Any suggestions / ideas ?