db.AcceptAllChanges()
предполагает, что вы закончили с любой связанной историей изменений, и отбрасывает ее - если у вас возникнут какие-либо дальнейшие проблемы, вы не сможете восстановить эти изменения.db.SaveChanges(false)
сохраняет эти изменения в памяти в случае возникновения проблем.
Более подробный ответ см. http://blogs.msdn.com/b/alexj/archive/2009/01/11/savechanges-false.aspx.
db.AddToCustomer()
- это строго типизированная оболочка вокругdb.Customers.AddObject()
.Посмотрите на определение этого, и вы поймете, что я имею в виду.Я бы использовал метод db.AddToCustomer()
исключительно потому, что он строго типизирован и дает вам проверку типов времени компиляции.
Я думаю, единственная причина, по которой нет DeleteFromCustomer()
, заключается в том, что они не думали, что работа будетнеобходимо (люди, как правило, добавляют больше, чем они удаляют).Однако ничто не мешает вам создавать свои собственные методы расширения, чтобы реализовать его самостоятельно.
EF не является поточно-ориентированным, если вы хотите выполнять обновления, вам нужно самостоятельно управлять блокировкой.См. http://blog.cincura.net/230902-multithreading-with-entity-framework/ для получения дополнительной информации:)