Я не думаю, что один фреймворк справится с этим, но вам также не нужно изобретать колесо заново.
Вы можете использовать обычную ORM, такую как Entities Framework, NHibernate или Subsonic, для нединамической части и взломать некоторую Ruby-подобную среду миграции для динамической части.
Это должно быть легко, поскольку в этих фреймворках миграции уже есть все методы для модификации схемы, сопоставленные с несколькими базами данных, просто нужно написать несколько классов, чтобы раскрыть их.
РЕДАКТИРОВАТЬ: Фреймворк, похожий на миграцию, будет для этого: «Мне нужно создавать и изменять таблицы во время выполнения со схемами, определенными моими конечными пользователями. (Очевидно, это не будет строго типизированным; я ищу там что-то вроде DataTable) "
Например, с резкими миграциями вы можете написать что-то вроде :
DataClient.Add
.Table("TableName")
.WithColumns(
Column.AutoIncrement("ID").NotNull().AsPrimaryKey(),
Column.String("NAME"),
Column.Date("DATESTART"),
Column.Int32("SOMENUMBER"),
);
Как видите, в нем используются строки, поэтому вы можете создать любую таблицу во время выполнения.
Удачи,
Андре Карлуччи
Вы можете посмотреть ObjectDataBlocks , если хотите написать поставщик для SqlLite и обновите класс Query для работы с LINQ