ASP.Net MVC模型类密钥标识符

时间:2017-05-07 16:07:35

标签: c# asp.net asp.net-mvc asp.net-mvc-4

我是ASP.Net MVC的新手,我正在努力更好地了解ASP.Net MVC。我做了几个教程并在这些教程中制作了一些模型。我脑子里浮现的一个问题是:我什么时候会使用public int Id { get; set; }?何时我会使用public int MyClassNameId { get; set; }作为我的模型类的标识符?如果我使用自定义属性名称而不是默认Id名称作为模型类的标识符,这是否重要?

例如,为什么我会使用public int ArtistId { get; set; }而不是public int Id { get; set; }?:

public class Artist
{
    public int ArtistId { get; set; }
    public string Name { get; set; }
}

它是否匹配另一个类中的属性名称,在该类中它将用作外键?

1 个答案:

答案 0 :(得分:0)

这取决于是否使用Entity Framework来设置数据库。如果您是实体框架,则查找特定属性名称以标识为主键。

例如,假设您有一个名为Book的模型。

public class Book
{
 public string Title {get; set;}
 //all other properties here
}

当Entity Framework尝试设置数据库时,它会查找可以识别为与特定模型对应的主键的属性。在这种情况下,EF会寻找" BookID"作为主键。因此,如果您希望拥有可访问的主键属性,则可以将其设置为这样。

public class Book
{
 public int BookID {get;set;}
 public string Title {get; set;}
 //all other properties here
}

如果您希望设置未调用的主键" BookID",您可以使用数据注释:

public class Book
{
 [Key]
 public int BookIdentifier{get;set;}
 public string Title {get; set;}
 //all other properties here
}