У меня есть этот метод, который будет вызываться из клиента WCF, но для моего тестирования я использую локальную «ссылку на проект». Я получаю сообщение об ошибке, что не могу вызвать DataContext после его удаления.
public IEnumerable<Server> GetServers()
{
// initialze to null
ServersDataContext sdc = null;
try
{
// get connected
using (sdc = GetDataContext())
{
// disable this deferred loading
sdc.DeferredLoadingEnabled = false;
var relations = from svr in sdc.Servers; // complex linq here
// return
return relations;
}
}
catch (Exception ex)
{
LogError(ex, "fwizs.Internal");
throw;
}
finally
{
if (sdc != null)
{
sdc.Dispose();
}
}
}
А вот как я использую метод, который выдает эту ошибку: «Не удается получить доступ к удаленному объекту».
if (da.GetServers()
.Select(sv => sv.ServerID == s.ServerID).Count() == 0)
{
// do work since we found it
}
Используя метод .Select () для этого возвращаемого объекта IEnumerable пытается выполнить откат к базе данных, чтобы сделать выбор. После сериализации для WCF я не думаю, что это будет проблемой, но я бы хотел, чтобы мои локальные тесты работали.