Не думаю, что здесь есть единственный лучший ответ.
Один из вариантов - экспортировать базу данных в формате XML и позволить вашему неуправляемому коду это использовать. Основным преимуществом этого подхода является то, что он дешевле (с точки зрения разработки) на управляемой стороне и обеспечивает гибкость на неуправляемой стороне.
В противном случае вам нужно будет обеспечить собственный маршалинг данных. Лучше всего было бы использовать код C ++ / CLI, который может работать с набором данных и преобразовывать его в структуру данных, понятную вашему неуправляемому коду.
Мы делали нечто подобное в прошлом, и это работает, но это достаточно много кода для общего случая.