使用实体框架时,有以下数据注释:
System.ComponentModel.DataAnnotations.KeyAttribute
System.ComponentModel.DataAnnotations.RequiredAttribute
仅供参考,我使用this wiki article中的定义:
主键
- 主键不能允许空值。 (您无法在允许空值的列上定义主键。)
- 每个表最多只能有一个主键。
醇>唯一键
- 唯一键可以允许空值。 (您可以在允许空值的列上定义唯一键。)
- 每个表都可以有多个唯一键。
醇>
KeyAttribute
是用于表示主键还是用于表示唯一键?
使用注释时,以下内容会被视为还原或必要吗?
class Example
{
[Required(), Key()]
public int Id { get; set; }
...
}
答案 0 :(得分:3)
在您的示例中,这将是多余的,因为模型需要键值才能在使用Key
注释后唯一标识它们。
另外,如果您使用Code-First,即使Key
也是多余的,因此按照惯例,名为Id
或ModelNameId
的属性将用于您的主键。