Любой способ получить атрибут размера от сгенерированных LINQ членов класса? - PullRequest
0 голосов
/ 26 января 2009

Я бы хотел не указывать атрибуты maxlength вручную для всех форм ввода элементы и вместо этого использовать информацию о размере из модели данных, если это возможно:

, например

<%= Html.TextBox("Titel", ViewData.Model.Titel, (object)new { @maxlength = "10" })%>   

можно ли "перевести" атрибут DbType в класс LINQ?

[Column(Storage="_Titel", DbType="NVarChar(10)")]
public string Titel

Ответы [ 2 ]

0 голосов
/ 26 января 2009

Позвольте мне перейти к этому курсу действий, и, надеюсь, вы сможете найти остальную часть пути. Я инкапсулировал данные select в инструкцию LINQ, и, надеюсь, вы можете поменять их, как вам нужны:

var q = from myDatabaseRow in dbContext.TableName
                    select new
                    {
                        myDatabaseRow.FieldName,
                      (ColumnAttribute)TypeDescriptor.GetProperties(myDatabaseRow.GetType())["FieldName"].Attributes[typeof(ColumnAttribute)]

                    };

Для этого нужно выбрать свойство из таблицы, а затем выбрать новый анонимный тип. Второе свойство в анонимном типе - это атрибут ColumnAttribute, который вы видите в поле модели данных. Затем вы можете использовать свойство .DbType, чтобы узнать максимальную длину. Надеюсь, это поможет!

0 голосов
/ 26 января 2009

Да, атрибуты доступны через отражение:

http://msdn.microsoft.com/en-us/library/aa288454(VS.71).aspx#vcwlkattributestutorialanchor3

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...