2009-11-11 4 views
0

Я планирую написать генератор кода для создания пользовательского интерфейса (формы, сетки и т. Д.). Поскольку я использую LINQ, я планирую прочитать файл DBML для целей извлечения метаданных. Есть ли какой-нибудь API для чтения объектной модели DBML (базы данных, таблиц, столбцов и ассоциаций)?Как читать файл DBML и отображать его в объектную модель в .NET?

Я открыл SQLMetal.exe с Red Gate Software.NET Reflector. Он содержит пространство имен, называемое LinqToSqlShared.DbmlObjectModel, и, похоже, оно содержит все, что мне нужно, чтобы прочитать объектную модель DBML. Плохая новость заключается в том, что пространство имен не отображается для внешнего потребления, а все классы объявляются как «Друг» (или запечатаны).

Еще раз, что-то существует, например, пространство имен LinqToSqlShared.DbmlObjectModel, чтобы прочитать DBML объектной модели в .NET.? Или мне нужно написать это сам?

ответ

1

Посмотрите, как модель читается в проекте L2ST4. Вы можете повторно использовать файл T4.

+0

Excelent !, это именно то, что я хотел сделать. Класс Data делает фантастическую работу для меня. Однако для реализации в файле .tt требуется некоторое взаимодействие с человеком, я действительно хочу создать инструмент командной строки для автоматического создания классов и даже пользовательских интерфейсов. На данный момент я изолировал класс [Data] в dll для работы в vb.net (с которым я знаком;) Я расскажу вам, как это происходит. спасибо за такой фантастический кусок кода. вы сохраняете несколько недель работы. Я должен вам пиво. –

0

Посмотрите на такой инструмент, как Reegenerator. Мы рассматриваем это как замену генератора кода L2S, потому что у нас есть некоторые требования к генерации кода.

+0

Я видел инструмент, о котором вы говорите, я видел видео, и это кажется довольно интересным. Однако я буду использовать шаблоны T4 для генерации кода, которые довольно легко реализовать и создать индивидуальный код. Единственное, что мне нужно - извлечь объектную модель из файла dbml. –