Вносит ли изменения изменения для всех объектов linq2sql, даже если они определены в отдельных файлах? - PullRequest
1 голос
/ 08 февраля 2012

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

Интересно, если я сделаю много изменений во многих различных классах репозитория (классы доступа к данным), а затем просто вызову SubmitChanges из одного класса, будет ли это безопасно, даже если я использовал другие классы как часть моей транзакции.

Есть ли хорошее руководство по лучшим практикам транзакций linq2sql, и где бы мне понадобилось более сложное решение, чем встроенные транзакции SubmitChanges?

Ответы [ 2 ]

2 голосов
/ 08 февраля 2012

Все изменения в объектах linq to sql, принадлежащих одному DataContext, будут зафиксированы в базе данных при вызове метода SubmitChanges () независимо от того, откуда он вызывается.

0 голосов
/ 08 февраля 2012

Интересно, если я сделаю много изменений во многих различных классах репозитория (классы доступа к данным), а затем просто вызову SubmitChanges из одного класса, будет ли это безопасно, даже если я использовал другие классы как часть моей транзакции.

Да, это будет безопасно.Пока вы вызываете SubmitChanges один раз, Linq-2-sql выполнит все обновления и сделает это за одну транзакцию, созданную для вас linq-2-sql.Нет необходимости добавлять отдельную транзакцию самостоятельно.

и где бы мне понадобилось более сложное решение, чем встроенные транзакции SubmitChanges?

Ну, все, что яМожно подумать, если вы хотите обновить, используя отдельные Datacontexts, например, для нескольких баз данных.

...