2013-04-12 168 views
0

林有點困惑。我看到一些代碼,在我們使用Linq的一個項目到SQL腳手架或其他框架?

<MetadataType(GetType(Customer.CustomerMeta))> Partial Public Class Customer 
Friend Class CustomerMeta 

    <Required(), StringLength(50)> Public Name As String 
    <Required(), StringLength(50)> Public Address As String 
    <Required(), StringLength(20)> Public EmailAddress As String 
    <StringLength(20)> Public Country As String 
End Class 

,爲什麼它是這樣的創建,但它看起來像一個不同的方法已經從曾經被使用即時消息不是肯定的。

在閱讀後,似乎技術可能是腳手架(http://msdn.microsoft.com/en-us/library/cc488469(v=vs.90).aspx),但通過本演練的一半,我意識到許多領域不存在(如global.asax文件)或適用於項目我看到上述代碼我可能在這裏錯誤的軌道上。

有誰知道上面正在使用什麼技術/框架,如果有我可以參考的文章,以加快速度?如果在這裏需要書籍或培訓課程,那麼我很高興有人能指引我走向正確的方向。

感謝

+0

Linq To SQL使用代碼生成工具。我認爲它的T4。 –

回答

0

這些數據驗證註釋(我不知道確切的「框架」你的情況使用它們,因爲它們在.NET框架和編程的人會暴露反對它可以使用它們) :基本上,您可以修飾具有這些屬性的成員(ValidationAttributes),然後可以使用此元數據進行一些驗證,無論是手動還是某些數據模式規則檢查器的自動驗證。

在這種情況下,屬性Name是: -

  • 必需字段(即,它必須具有在它的東西,並且不爲空),
  • 和長度必須
  • 50個字符

等等等等。

後一個約束可能會使前者成爲冗餘,這取決於分析規則的內容。

+1

['StringLengthAttribute'](http://msdn.microsoft.com/zh-cn/library/system.componentmodel.dataannotations.stringlengthattribute%28v=vs.90%29.aspx)指定了字符串的最大長度,而不是最低限度,使得'Required' *不*冗餘。這與誰分析規則無關。 –

+0

@DanielHilgarth [Depends](http://msdn.microsoft.com/en-us/library/system.componentmodel.dataannotations.stringlengthattribute.aspx):_'指定數據中允許的字符的最小和最大長度'即使這樣,它也依賴於規則檢查器。 –

+1

不使用帶有一個參數的構造函數時:http://msdn.microsoft.com/en-us/library/system.componentmodel.dataannotations.stringlengthattribute.stringlengthattribute.aspx。它僅指定最大長度。 –