C# 数据库生成的默认值
我可以使用以下命令定义标识主键:C# 数据库生成的默认值,c#,entity-framework-core,C#,Entity Framework Core,我可以使用以下命令定义标识主键: public class MyEntity { [DatabaseGenerated(DatabaseGeneratedOption.Identity)] [Key] public int Id { get; set;} } 但是如果我不添加数据注释,那么默认生成的类型是什么?像这样: public class MyEntity { public int Id { get; set;} } 标识还是取决于创建数据库时的数据库
public class MyEntity
{
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
[Key]
public int Id { get; set;}
}
但是如果我不添加数据注释,那么默认生成的类型是什么?像这样:
public class MyEntity
{
public int Id { get; set;}
}
标识还是取决于创建数据库时的数据库
我在官方文档中找不到主题:按照惯例,EF查找名为YourEntityName+Id或just Id的属性,并且知道它是用于指定PK的。所以隐式地
[Key]
和[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
对该属性执行属性。您自己尝试时发生了什么?@jmchilney我只有SQL Server,在SQL Server中默认为Identity。因此,您专门询问,而不是专门询问,在SQL Server以外的数据库上会发生什么情况?@jmcillhinney mmh。。。文档链接中的yesConventions部分:“按照约定,整数或GUID数据类型的主键将被设置为在添加时生成值。所有其他属性将被设置为不生成值。”