лучший способ справиться с несколькими транзакциями в базе данных с помощью сущности - PullRequest
1 голос
/ 27 ноября 2011

На самом деле немного советов, я создаю приложение MVC, которое принимает каналы для продуктов из нескольких источников. Это может исчисляться миллионами, и, несмотря на мой лучший совет клиенту разбивать все его каналы на более мелкие куски, я знаю, что они, вероятно, попытаются сделать тысячу за раз.

Теперь главная проблема в том, что я не хочу перебирать каждую запись xml и вставлять. что я бы предпочел сделать, это поставить в очередь стек от вставок и затем поместить их в базу данных за одну крупную транзакцию. Очень похоже на импорт базы данных SQL всей таблицы.

Возможно ли это? если да, то как или как они это называют?

также, если бы я захотел повторно вставлять повторяющиеся продукты снова и снова, когда ничего не изменилось, что было бы лучшим способом для этого. могу ли я перебрать уже извлеченный набор данных?

Я не уверен, что лучше здесь делать, поэтому спросите людей, каково единодушие, когда дело доходит до такого сценария.

спасибо

1 Ответ

1 голос
/ 27 ноября 2011

С помощью каркаса сущностей вы получите одну вставку в дБ на каждую вставляемую запись, не будет массовой вставки (если это то, что вы искали).

Однако, чтобы заключить это в транзакцию, вам ничего не нужно делать, кроме как добавить свой элемент в класс контекста.

http://msdn.microsoft.com/en-us/library/bb336792.aspx

Это автоматически добавит транзакцию при вызове SaveChanges. Все, что вам нужно сделать, это убедиться, что вы используете один класс контекста и .Add (yourObject) к контексту.

Так что просто подождите, чтобы вызвать SaveChanges, пока все объекты не будут добавлены в контекст.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...