【问题标题】:What is the purpose of the [Key] attribute on a Primary Key in an asp.net MVC class?asp.net MVC 类中主键上的 [Key] 属性的目的是什么?
【发布时间】:2017-03-02 14:52:07
【问题描述】:

我在不同的地方读过,例如

http://techfunda.com/howto/132/primary-key-and-foreign-key-relationship-in-model

...如果你没有在你的模型“Id”或“id”中调用Id属性,你需要添加注解[Key],例如

[Key]
public int MyKey { get; set; }

...告诉编译器它是数据库中的主键。

这似乎只是 Code First 网站的要求 - 尽管我无法找到任何结论性的方法。

[Key]的用途是什么,应该在什么时候使用?

即使不构建 Code First MVC 站点,我是否需要装饰模型中不称为“Id”的任何主键?

【问题讨论】:

  • 是的。那是正确的。仅代码首先需要它
  • 也只有当你想持久化这个类时才需要。例如,如果您为 Entity Framework 和 ViewModels 使用不同的模型类(以及它们之间的映射),您只需为 EF 模型赋予属性。

标签: asp.net-mvc asp.net-mvc-5


【解决方案1】:

当你首先运行代码并使用它时:

public class MyClass{
    [Key]
    public int MyKey { get; set; }
}

这将在您的数据库中创建:

表 >> dbo.MyClass 列 >> MyKey IDENTITY NOT NULL

【讨论】:

    【解决方案2】:

    当您创建脚本来创建表时,您需要确保它是主键并且用于代码优先方法

    public class NewClass{
      [key]
      public int MyKey {get; set;} 
      }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-06-09
      • 2013-06-17
      • 1970-01-01
      • 2014-09-22
      • 1970-01-01
      • 2015-06-04
      • 1970-01-01
      相关资源
      最近更新 更多