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