EF Code First从DB不为所有表创建实体

时间:2016-01-04 20:40:02

标签: c# ef-code-first entity-framework-6

我有一个现有的数据库我正在尝试使用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时,我看到每个表都被选中,但是当导入完成某些未创建的表的实体时。我已经尝试过两次并且双重检查确实选择了没有实体的表进行导入。导入过程中不会抛出任何错误,所以我不确定为什么有些表缺少权限。可能出现什么问题,如何为每个选定的表获取实体?

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
);

2 个答案:

答案 0 :(得分:7)

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

看起来像might be able to work around this with some trickery,但在每张桌子上添加PK几乎肯定是最好的方法。

答案 1 :(得分:4)

如果Table没有至少一个参数not null ADO.NET将不会生成该类。我不知道这是不是一个错误,只是发生在我身上。 没有必要使用主键但是不能为空。