我是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; }
}
它是否匹配另一个类中的属性名称,在该类中它将用作外键?
答案 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
}