2010-12-13 4 views
1

Я читаю ограничения столбцов из базы данных.
, например:
Синхронизация SQL Check Constraint

(substring([name],(1),(1))='P' OR len([name])>(2) AND len([name])>(4) AMD (len(name)>5 OR len(name)<4)) 

Идея заключается в том, что каждая открытая скобка должна быть закрыта.
Скобки вокруг чисел и вокруг функций автоматически вставляются студией управления SQL, когда мы добавляем новые контрольные ограничения. Может ли кто-нибудь предложить, как разбирать эти строки?

Моя цель состоит в том, чтобы преобразовать контрольные значения столбца в код C#, чтобы я мог создавать валидаторы Entity. Все таблицы базы данных отображаются в классы Entities.

ответ

2

Простой ответ: это будет непросто. По крайней мере, если вы пытаетесь сделать это правильно ...

Вы говорите об определении DSL для определения ограничений (что «по совпадению» точно так же, как TSQL). Для этого вам нужно использовать какой-то инструмент парсера. Возможно, вам стоит подумать об использовании Irony.

Это интересная идея. Я вижу преимущества этого - я просто не думаю, что это будет проще, чем просто использовать БД в качестве хранилища данных (без какой-либо проверки данных - возможно, только ограничений внешних ключей) и сосредоточиться на определении всех бизнес-правил в .NET серверная сторона ...

Смежные вопросы