|
Программно посмотреть DataAnnotations у свойства модели EF
|
|||
---|---|---|---|
#18+
Здравствуйте! Есть класс, модель Entity Framework, с набором свойств (полей). Поля имеют DataAnnotations, например: [Display(Name="Поле")] Как программно посмотреть, например, какое значение DataAnnotations.Display у какого-нибудь поля данной модели EF ? ... |
|||
:
Нравится:
Не нравится:
|
|||
01.10.2013, 16:13 |
|
Программно посмотреть DataAnnotations у свойства модели EF
|
|||
---|---|---|---|
#18+
Andrey_VPЗдравствуйте! Есть класс, модель Entity Framework, с набором свойств (полей). Поля имеют DataAnnotations, например: [Display(Name="Поле")] Как программно посмотреть, например, какое значение DataAnnotations.Display у какого-нибудь поля данной модели EF ? 1. Рефлекшеном извлечь из классов сущностей. или 2. Рыться в метаданных EF, живущих в ObjectContext.MetadataWorkspace. Тут решение зависит от версии EF и там не всё задокументировано. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.10.2013, 18:06 |
|
Программно посмотреть DataAnnotations у свойства модели EF
|
|||
---|---|---|---|
#18+
Алексей К, спасибо за подсказки. Порылся в "метаданных EF, живущих в ObjectContext.MetadataWorkspace", но так ничего и не нашёл. Пришлось сделать так (функция возвращает значение DataAnnotations.DisplayAttribute.Name для свойства EF модели): Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13.
... |
|||
:
Нравится:
Не нравится:
|
|||
02.10.2013, 10:46 |
|
Программно посмотреть DataAnnotations у свойства модели EF
|
|||
---|---|---|---|
#18+
Это code first? Потому что в db first в edmx вроде нет этих атрибутов. Тогда не понятно, зачем эти атрибуты нужны в EF модели. Им там вообще не место. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.10.2013, 11:56 |
|
Программно посмотреть DataAnnotations у свойства модели EF
|
|||
---|---|---|---|
#18+
Andrey_VP, автор PropertyInfo property = EFmodel.GetProperties(BindingFlags.Instance | BindingFlags.Public).Where(p => p.Name == EFpropertyName).FirstOrDefault(); А это как? Вы допускаете этим выражением что имена пропертей могут совпадать в типе? ... |
|||
:
Нравится:
Не нравится:
|
|||
02.10.2013, 11:57 |
|
Программно посмотреть DataAnnotations у свойства модели EF
|
|||
---|---|---|---|
#18+
Andrey_VP, авторPropertyInfo property = EFmodel.GetProperties(BindingFlags.Instance | BindingFlags.Public).Where(p => p.Name == EFpropertyName).FirstOrDefault(); if (property.IsDefined(typeof(System.ComponentModel.DataAnnotations.DisplayAttribute), true)) хороший финт, если проперть не найдена мы все равно заставим код выполняться - дальше искать в дефолтной атрибуты ... |
|||
:
Нравится:
Не нравится:
|
|||
02.10.2013, 12:11 |
|
Программно посмотреть DataAnnotations у свойства модели EF
|
|||
---|---|---|---|
#18+
МСУЭто code first? Потому что в db first в edmx вроде нет этих атрибутов. Тогда не понятно, зачем эти атрибуты нужны в EF модели. Им там вообще не место. наверное хочет заюзать dto в качестве моделей для вью. нормальная практика, чо )))) ... |
|||
:
Нравится:
Не нравится:
|
|||
02.10.2013, 12:15 |
|
Программно посмотреть DataAnnotations у свойства модели EF
|
|||
---|---|---|---|
#18+
Andrey_VP, авторif (property.IsDefined бедная программа, в нутрях она вытащила массив атрибутов, выкинула Any, и если есть - хозяин опять полез вытаскивать эти атрибуты, не ужели не очевидно, что IsDefined лучше применять для принятия решения от маркирован ли объект или нет, но не как не вытаскивать эту маркировку? ... |
|||
:
Нравится:
Не нравится:
|
|||
02.10.2013, 12:17 |
|
Программно посмотреть DataAnnotations у свойства модели EF
|
|||
---|---|---|---|
#18+
Andrey_VP, авторstring s=""; зачем нам на стеке это архитектурное излишество равно как и интренирование, в стринге есть статическое определение этой сущности Короче, не зачет, переписывать все по новой.. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.10.2013, 12:21 |
|
Программно посмотреть DataAnnotations у свойства модели EF
|
|||
---|---|---|---|
#18+
hVosttнаверное хочет заюзать dto в качестве моделей для вью. нормальная практика, чо )))) Хреновая практика, очень хреновая :) ... |
|||
:
Нравится:
Не нравится:
|
|||
02.10.2013, 12:26 |
|
Программно посмотреть DataAnnotations у свойства модели EF
|
|||
---|---|---|---|
#18+
Спасибо за критику, господа. Написали бы и свои гениально верные решения для обучения новичков. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.10.2013, 12:32 |
|
Программно посмотреть DataAnnotations у свойства модели EF
|
|||
---|---|---|---|
#18+
Andrey_VP, да нет проблем две минуты Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9.
... |
|||
:
Нравится:
Не нравится:
|
|||
02.10.2013, 12:36 |
|
Программно посмотреть DataAnnotations у свойства модели EF
|
|||
---|---|---|---|
#18+
Где-то в степиAndrey_VP, да нет проблем две минуты Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9.
Не правильно! Нельзя трогать свойство Name атрибута DisplayAttribute. Объяснить? ... |
|||
:
Нравится:
Не нравится:
|
|||
02.10.2013, 12:39 |
|
Программно посмотреть DataAnnotations у свойства модели EF
|
|||
---|---|---|---|
#18+
Andrey_VPСпасибо за критику, господа. Написали бы и свои гениально верные решения для обучения новичков. http://ru.wikipedia.org/wiki/Model-View-ViewModel http://ru.wikipedia.org/wiki/Model-View-Controller http://ru.wikipedia.org/wiki/Model-View-Presenter Этого хватит за глаза, чтобы писать правильный код, а не ковыряться в заднице прикладном коде рефлексией. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.10.2013, 12:43 |
|
Программно посмотреть DataAnnotations у свойства модели EF
|
|||
---|---|---|---|
#18+
hVostt, давай ... |
|||
:
Нравится:
Не нравится:
|
|||
02.10.2013, 12:43 |
|
Программно посмотреть DataAnnotations у свойства модели EF
|
|||
---|---|---|---|
#18+
Andrey_VPСпасибо за критику, господа. Написали бы и свои гениально верные решения для обучения новичков. Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.
MyModelType - ваша модель всё блин. в properties лежат имя проперти, его DisplayName, Description.. добавить по вкусу. можно кастануть в Dictionary и доставать по ключу. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.10.2013, 12:45 |
|
Программно посмотреть DataAnnotations у свойства модели EF
|
|||
---|---|---|---|
#18+
Где-то в степиhVostt, давай в Name, вместо нужной локализованной строки может лежать наименование ключа локализованного ресурса. необходимо всегда использовать метод GetName(). ... |
|||
:
Нравится:
Не нравится:
|
|||
02.10.2013, 12:48 |
|
Программно посмотреть DataAnnotations у свойства модели EF
|
|||
---|---|---|---|
#18+
hVosttнеобходимо всегда использовать метод GetName(). Если ResourceType == null и в этом есть уверенность, то можно смело пользоваться Name. Но лучше прислушаться к рекомендациям MS. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.10.2013, 12:58 |
|
Программно посмотреть DataAnnotations у свойства модели EF
|
|||
---|---|---|---|
#18+
hVosttГде-то в степиhVostt, давай в Name, вместо нужной локализованной строки может лежать наименование ключа локализованного ресурса. необходимо всегда использовать метод GetName(). принимаю, согласен, посыпаю голову, не залез в справку, понадеялся на топикавтора "a => a.MemberInfo.Name == "Name"" ... |
|||
:
Нравится:
Не нравится:
|
|||
02.10.2013, 13:09 |
|
|
start [/forum/topic.php?fid=17&fpage=23&tid=1349919]: |
0ms |
get settings: |
8ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
50ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
51ms |
get tp. blocked users: |
1ms |
others: | 281ms |
total: | 425ms |
0 / 0 |