EF Code First From DB未为所有表创建实体

本文关键字:创建 实体 Code First From DB EF | 更新日期: 2023-09-27 18:28:54

我有一个现有的数据库,正在尝试使用Entity Framework Code First From Database为其生成C#实体。为此,我正在Visual Studio 2015中执行Add -> New Item -> ADO.NET Entity Data Model -> Code First from database。当我浏览Entity Data Model Wizard时,我看到每个表都被选中了,但当导入完成了一些未创建的表的实体时。我已经尝试了两次,并再次检查是否确实选择了不包含实体的表进行导入。在导入过程中没有抛出任何错误,所以我不确定为什么有些表缺少authorize。可能出了什么问题?如何为每个选定的表获取实体?

SQL为丢失的表之一创建表代码:

CREATE TABLE [dbo].[ProgramControl] (
    [CodeName]    VARCHAR (80) NULL,
    [CodeValue1]  VARCHAR (50) NULL,
    [CodeValue2]  VARCHAR (50) NULL,
    [CodeValue3]  VARCHAR (50) NULL,
    [CodeValue4]  VARCHAR (50) NULL,
    [Description] TEXT         NULL
);

EF Code First From DB未为所有表创建实体

EF代码首先需要在每个实体上使用主键,因此该工具无法映射这些表。

看起来你可以通过一些技巧来解决这个问题,但几乎可以肯定的是,在每张表中添加PK是最好的方法。

如果表中没有至少一个非null参数,ADO.NET将不会生成该类。我不知道这是不是一个bug,只是发生在我身上。没有必要有主键,但必须有一个非null。