2010-03-09 2 views
1

Я уже googled вокруг, чтобы найти решение для моей потребности, без успеха.Автоматически создавать свойства - из таблицы базы данных

Скажем, я имею таблицу, которая выглядит следующим образом:

ID | KeyId | Имя | Описание
1 | 153 | Валюта | XXXXXXXX
2 | 68 | Подпись | YYYYYYYY
3 | 983 | Контакты | ZZZZZZZZ .

Теперь я хочу получить доступ к этим значениям не коллекцией, потому что не могу запомнить все значения, скажем, для имени.

Так что это не что я хочу: Values.Where (v => v.Name == "Валюта") Выберите (v => v.KeyId);.

Содержимое таблицы меняется редко, но все же это нехорошее решение, имеющее структуру со всеми «Именами» и получение KeyId, как это.

struct Values 
{ 
    public static int Currency 
    { 
     get { return GetKeyId("Currency"); } 
    } 
} 

Я ищу решение, которое создает мне автоматически свойства из этой таблицы. Чтобы я мог получить доступ к KeyId с помощью intellisense. Как и для ресурсов в ASP.NET. Там класс автоматически обновляется, как только вы добавляете новую запись в файл RESX.

Например: Значения. Валюта, это возвращает мне соответствующий KeyId.

Спасибо за ответ

ответ

0

я нашел идеальное решение для меня =>T4 Шаблоны

С помощью этой функции можно итерацию через мой стол и создать свойства для каждой строки, ПРИТИ приятно.

Там вы идете:
Example how to work with T4
T4 Editor - Free
Infos to T4 Editor

0

я считаю, эта функция была добавлена ​​в C# 4.0 (еще не выпущен), объявленное в Microsoft PDC. Однако даже это решение может не дать вам Intellisense для всего, что вы еще не набрали явно (потому что, если вы подумаете об этом, Intellisense не сможет помочь вам ввести значения, которые могут быть добавлены в будущем).

До тех пор стандартная практика заключается в использовании Словаря и/или Enum (но для словаря вам потребуется ввести строку, а Enum не будет обновляться автоматически или оба с использованием Enum в качестве ключа к словарю чтобы получить помощь по разуму).

+0

Звучит хорошо для меня, давайте посмотрим, если 4.0 будет иметь эту функцию. Конечно, ничто не может быть добавлено в intellisense, что не набирается где-то. Но было бы неплохо иметь такое же поведение, как и для файлов ressource (RESX). Я не знаю, легко ли это. Я постараюсь узнать и дать обновление здесь. спасибо за ваш ответ – Kosta

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