I am currently using EF 6.x with Firebird 2.5.x and it works very well.
During a dataload from an external datasource I load a number of records from my database and compare them with the external source. Sometimes I have to correct/complete my data. In the case this update fails on the database i detach the current entity that the following updates can continue.
This works fine unless I have modified a navigation property of the current entity.
Do you really have to detach? Wouldn't work for you just fine to set the
state to unchanged (nor sure what's done with the entities after)?
Other than that, I believe putting it into list/array is OK (at least
for me). You might even just use ToList method and foreach on that,
without the extra variable - but the intermediate list will be created
anyway, so it's just a cosmetic thing.