Внутренние строки .NET находятся в UTF-16, да ... но важно то, как данные передаются между .NET и вашей базой данных.
До тех пор, пока символы могут быть представлены в Unicode, и драйвер выполняет соответствующее преобразование, у вас все должно быть в порядке. Если вы пытаетесь представить текст, который не может быть представлен в Юникоде, вы можете столкнуться с некоторым интересным поведением.