Если вы не возражаете против обязательного JavaScript, я бы предложил jqGrid. Должно быть очень просто перечислять таблицы, столбцы и генерировать из него столбцы jqGrid (colModel). Вы можете увидеть пример того, как я делаю подобную вещь здесь - она делает почти точно то, что вам нужно, но для классов, а не для базы данных. Таким образом, вы не можете использовать решение «как есть», потому что оно для классов домена, но оно очень близко, вы можете взять его за основу и переписать JqGridExtensions.JqGridModel для обработки определения таблицы БД, а не определения класса домена.
Если ваш сайт должен работать без JavaScript, то будет работать либо MVC v2 со скаффолдингами, либо вы можете попробовать S # arp Architecture , которая также включает в себя собственные скаффолдинги из коробки, которые генерируют полный CRUD модель / контроллер / виды / Хранилище / и т.д.. Преимущество в том, что вы все равно будете работать с классами , а не с наборами данных. Однако, насколько я понимаю, вам придется определять scaffolding вручную для каждой сущности - но, поскольку scaffolding очень гибок, я уверен, что вы можете написать класс Uber-Scaffolding, который будет перечислять вашу базу данных и выплевывать файлы sub-scaffolding или просто позвони им прямо сейчас. A цитата :
вы программно создаете объект
называется EntityScaffoldingDetails, который
содержит такие детали, как имя объекта,
пространство имен вместе со свойством
такие детали, как имя свойства,
тип, включение подписи домена,
атрибуты, значения тестов по умолчанию и
Детали генерации SQL.
Но мне больше нравится способ jqGrid, потому что очень просто генерировать определение модели jqGrid из схемы базы данных, которая обычно содержит все метаданные. Конечно, можно интегрировать S # arp scaffolding и jqGrid так, чтобы первый создавал последний. Преимущество скаффолдинга в том, что вы имеете полный контроль над кодом, вы можете взять его и настроить. Потому что вы не можете ожидать, что он будет на 100% автоматическим - генератор не может определить HasMany или ManyToMany, тип элемента управления, скрытые поля и т. Д. Конечно, вы можете использовать метаданные SQL (возможно, свойства), чтобы дать подсказки для вашего генератора скаффолдинга.
Теперь, если вам нужно готовое готовое решение, я не думаю, что оно есть, за исключением, может быть, коммерческих инструментов. Вышеуказанное позволит вам собрать только свой собственный. Что касается коммерческого инструмента, например, Telerik Grid сказал, что он способен «автоматически выводить свои столбцы на основе свойств элемента данных, с которым он связан».