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代码首先需要在每个实体上使用主键,因此该工具无法映射这些表。
看起来你可以通过一些技巧来解决这个问题,但几乎可以肯定的是,在每张表中添加PK是最好的方法。
如果表中没有至少一个非null参数,ADO.NET将不会生成该类。我不知道这是不是一个bug,只是发生在我身上。没有必要有主键,但必须有一个非null。