sql - EF数据库第一代代码生成缺失Key和数据注解

标签 sql sql-server asp.net-mvc entity-framework data-annotations

对于 EF 6.1 及更高版本,当我在 VS15 和 Sql-Server 2k16 数据库中添加/反向工程实体模型模型/代码生成时,我的实体缺少 Id 和自动增量数据注释。 Saw thisthis关于 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/

相关文章:

php - INSERT INTO 语句无法正确插入特定值?

c# - CultureInfo.InvariantCulture 和 DateTime to String 如何工作

c# - 在 SQL Server 中处理 'Enumerations' 有哪些不同的方法?

asp.net - MVC2 和 MVC Futures 导致 RedirectToAction 问题

javascript - 为 webgl 准备二进制数据并将其发送到 javascript

PHP 编辑数据库条目不更新

sql - Arel刚刚发生了什么,我该如何使用Arel::SelectManager?

c# - 必须使用哪些命名空间才能使用 ADO.NET 连接到 SQL Server?

c# - 为什么我会收到此错误?

mysql - WHERE 子句或 ON 子句中的 INNER JOIN 条件?