Asp.net mvc asp.net MVC类中主键的[Key]属性的用途是什么?

Asp.net mvc asp.net MVC类中主键的[Key]属性的用途是什么?,asp.net-mvc,asp.net-mvc-5,Asp.net Mvc,Asp.net Mvc 5,我在不同的地方都读过书 …如果不调用模型中的Id属性“Id”或“Id”,则需要添加注释[Key],例如 [Key] public int MyKey { get; set; } …告诉编译器它是数据库中的主键 这似乎只是代码优先网站的一个要求——尽管我找不到任何结论 [钥匙]的用途是什么?何时使用 即使不构建代码优先的MVC站点,我也需要修饰模型中未称为“Id”的主键吗?当您首先运行代码并使用此选项时: public class MyClass{ [Key] public i

我在不同的地方都读过书

…如果不调用模型中的Id属性“Id”或“Id”,则需要添加注释[Key],例如

[Key]
public int MyKey { get; set; }
…告诉编译器它是数据库中的主键

这似乎只是代码优先网站的一个要求——尽管我找不到任何结论

[钥匙]的用途是什么?何时使用


即使不构建代码优先的MVC站点,我也需要修饰模型中未称为“Id”的主键吗?

当您首先运行代码并使用此选项时:

public class MyClass{
    [Key]
    public int MyKey { get; set; }
}
这将在数据库中创建:

表>>dbo.MyClass
列>>我的密钥标识不为NULL

当您首先运行代码并使用此选项时:

public class MyClass{
    [Key]
    public int MyKey { get; set; }
}
这将在数据库中创建:

表>>dbo.MyClass
列>>我的密钥标识不为空

是。这是正确的。仅代码优先需要它,因此仅当您希望持久化该类时才需要它。例如,如果对Entity Framework和ViewModels(以及它们之间的映射)使用不同的模型类,则只需为EF Models.Yes添加属性。这是正确的。仅代码优先需要它,因此仅当您希望持久化该类时才需要它。例如,如果对Entity Framework和ViewModels使用不同的模型类(以及它们之间的映射),则只需要为EF模型添加属性。