对于 EF 6.1 及更高版本,当我在 VS15 和 Sql-Server 2k16 数据库中添加/反向工程实体模型模型/代码生成时,我的实体缺少 Id 和自动增量数据注释。 Saw this和 this关于 SO 的问题,但没有答案,只是它是一个错误,我正在寻找一个选项来生成 PK key ,自动增量。
问题:我如何确保将 Id 键和自动增量选项添加到实体 在代码生成期间?除了外键之外没有数据注释!我也可以让 EF 生成复合 key 吗?
我做了什么 :
在数据库中,我在[Id]
上添加了Set主键col as int
,
我也设置了Identity true
, seed 1
, auto increment 1
例如。缺少主键
//E.g. Reverse Eng. Generated code from ASP table
public partial class AspNetUsers
{
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2214:DoNotCallOverridableMethodsInConstructors")]
public AspNetUsers()
{
this.AspNetUserClaims = new HashSet<AspNetUserClaims>();
this.AspNetUserLogins = new HashSet<AspNetUserLogins>();
this.AspNetRoles = new HashSet<AspNetRoles>();
}
// Missing Primary Key
public string Id { get; set; }
public Nullable<int> IdNumber { get; set; } ...
例如。 2 缺少主键和自动增量
public partial class AuditNetEvent
{
//Reverse Generated code missing Primary Key & Auto Increment
public bigint Id { get; set; }
public System.DateTime InsertedDate { get; set; }
最佳答案
当默认约定使注释变得多余时,该工具似乎不会添加注释。对于 Id
列默认是它的PK和身份。我尝试使用与约定不匹配的表(偏离 PK 列名且没有标识)并添加了注释:
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.None)]
public int CstId { get; set; }
关于sql - EF数据库第一代代码生成缺失Key和数据注解,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42425929/