我想避免为所有表单输入手动指定maxlength属性 元素,而是尽可能使用数据模型中的大小信息:
e.g。
<%= Html.TextBox("Titel", ViewData.Model.Titel, (object)new { @maxlength = "10" })%>
是否可以“翻译”LINQ类中的DbType属性?
[Column(Storage="_Titel", DbType="NVarChar(10)")]
public string Titel
答案 0 :(得分:0)
是的,属性可通过反思获得:
http://msdn.microsoft.com/en-us/library/aa288454(VS.71).aspx#vcwlkattributestutorialanchor3
答案 1 :(得分:0)
让我告诉你这个行动方案,希望你可以找到其余部分。我已将数据选择封装到LINQ语句中,希望您可以将其交换出来,但是您需要数据:
var q = from myDatabaseRow in dbContext.TableName
select new
{
myDatabaseRow.FieldName,
(ColumnAttribute)TypeDescriptor.GetProperties(myDatabaseRow.GetType())["FieldName"].Attributes[typeof(ColumnAttribute)]
};
这样做是从表中选择一个属性,然后选择一个新的匿名类型。匿名类型中的第二个属性是您在数据模型字段中看到的ColumnAttribute。然后,您可以使用.DbType属性来查找最大长度。希望这有帮助!