Я использую Transactionscope с linqtosql. У меня есть следующий код:MSDTC на сервере 'servername' недоступен с linq to sql
public bool Save(int Id, List<Student> students, List<Subject> subjects)
{
var isDataSaved = false;
using (TransactionScope scope = new TransactionScope())
{
try
{
// Save the students
SaveStudents(students);
// Save the subjects
SaveSubjects(subjects);
scope.Complete();
isDataSaved = true;
}
catch (Exception ex)
{
throw ex;
}
return isDataSaved;
}
}
В обоих методах я использую две таблицы: Студенты, субъектов, находящихся в одной и той же базе данных. Зависимость объекта DataContext настроена с помощью конструктора, как упоминалось в приведенном ниже классе:
public class StudentsRepository:IStudentsRepository
{
public StudentsRepository()
{
_dataContext = new SchoollDetailsDataContext(connectionString);
}
}
же объект DataContext используется в обоих способах SaveStudents и SaveSubjects.
Я получаю исключение: MSDTC на сервере 'servername' недоступен.
В соответствии с моим первоначальным анализом такая ошибка возникает, когда операция базы данных будет в моей локальной базе данных, а другая - в удаленной базе данных.
Может ли кто-нибудь помочь мне узнать, есть ли что-нибудь, что у меня отсутствует?
«Используется один и тот же объект datacontext». Я сомневаюсь в этом. Здесь открываются две связи. Это не имеет ничего общего с локальным/удаленным. Опубликовать полное исключение ToString. Вы оставили информацию. – usr
Что это такое? Этот метод всегда будет возвращать true. Удалите переменную и catch. – usr
Тот же _dataContext используется с самого начала в методе Save Save, а затем переносится на SaveSubjects. Значение переменной isDataSaved используется для сохранения сохраненных данных трека. –