Когда вы создаете новый объект EntityCollection, соединение не пытается открыть базу данных, пока вы не попытаетесь что-то сделать с этой коллекцией.Мне нужно определить, имеет ли коллекция Entity действительное соединение или нет, и я не могу найти эффективный способ сделать это.
В настоящее время у меня есть это в моем коде:
var db = new MyEntityCollection();
try
{
var checkworking = from c in db.Customers select c;
}
catch
{
ConnectToBackUp();
}
Это не только ужасный код, но и очень медленный, поскольку он ожидает возраст, чтобы определить, активно ли соединение, прежде чем выдавать исключение.
Я знаю, что могу контролировать, как долго он ждет досдаться с помощью ConnectionTimeout, но это еще один уродливый хак, который усугубляет плохую ситуацию.
Конечно, есть лучший способ сделать это?