2013-12-20 33 views
0

當使用實體框架有以下數據註釋:鍵和所需數據註解

僅供參考,我用從this wiki article的定義:

主鍵

  1. 主鍵不能允許空值。 (您不能在允許空值的列上定義主鍵。)
  2. 每個表最多隻能有一個主鍵。

唯一鍵

  1. 唯一鍵可以允許空值。 (您可以在允許空值的列上定義唯一鍵。)
  2. 每個表可以有多個唯一鍵。

是對KeyAttribute用來表示一個主鍵,或者它用來表示一個唯一的密鑰?

當使用註釋時,下列情況應被視爲還原還是必要的?

class Example 
{ 
    [Required(), Key()] 
    public int Id { get; set; } 
    ... 
} 

回答

1

在你的榜樣,爲您的模型需要一個鍵值來唯一地標識當他們一旦被註釋與Key這將是多餘的。另外,如果您使用的是Code-First,即使Key按照慣例也是多餘的,那麼稱爲IdModelNameId的屬性將用於您的主鍵。

+0

有沒有更好的定義這些地方? MSDN上的文章都沒有提到他們的工作。 – afuzzyllama

+0

Re:'Key' http://msdn.microsoft.com/en-us/library/system.componentmodel.dataannotations.keyattribute%28v=vs.95%29.aspx「指定一個或多個實體屬性用作該實體的唯一身份。「你可以有唯一的字段,不一定標識一個實體。一個存儲密碼散列的字段讓人想起。 –

+0

沒錯,但沒有任何內容說明必須要求密鑰,只是必須是唯一的。 – afuzzyllama