Похоже, что для второго вопроса вы можете быть заинтересованы в использовании транзакции. Например, вам нужно добавить несколько объектов в базу данных и убедиться, что все они добавлены или отсутствуют. Это то, что выполняет транзакция базы данных. И, да, вы должны сделать это на уровне данных / бизнеса, вы можете сделать это, добавив частичный класс в ваши классы datacontext. Если ваш бизнес-процесс утверждает, что, например, КАЖДЫЙ пользователь ДОЛЖЕН иметь АДРЕС или что-то в этом роде. Это соответствует вашему сценарию.
LINQ автоматически использует транзакции, если вы находитесь в пределах одного (использования), т. Е. Вы выполняете все за один шаг.
Если вам нужно выполнить несколько шагов или объединить с действием базы данных, не относящимся к LINQ, вы можете использовать область транзакции. Вам необходимо включить СЕРВИС РАСПРЕДЕЛЕННОЙ СДЕЛКИ. Это позволяет проводить транзакции, например, между файлами и базой данных.
См. TransactionScope
using (TransactionScope scope = new TransactionScope())
{
do stuff here
scope.Complete
}