Это выглядит как ошибка сети, а не проблема с драйвером. Если база данных не является локальной, вы увидите, что если у вас плохое соединение или вы не правильно настроили брандмауэр - вы мало что можете изменить в коде, чтобы изменить его. Попытка держать одно соединение открытым слишком долго также может привести к ошибкам соединения.
Большинство доступных баз данных NoSQL хорошо работают с .NET, поэтому вы можете выбирать на основе функциональных требований, а не .NET-совместимости. Однако вы не должны ожидать, что он будет работать так же, как SQL или иметь так много примеров - большинство из них используются главным образом на других платформах, и, поскольку все они имеют разные способы выполнения запросов, LINQ в любом случае не всегда подходит.
Кроме того, что вы подразумеваете под POCO? Атрибуты сериализации могут сделать классы сложными, но это просто обычные объекты, а не лениво загружаемые самообновляющиеся объекты, которые вы получаете из типичного ORM.