实体框架不为表或过程生成类

Nig*_*mes 7 c# sql-server entity-framework ado.net-entity-data-model

我正在使用Entity Framework在C#中生成类和函数,我需要与SQL服务器进行交互.

作为参考,这是我的一个表:

SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO

CREATE TABLE [dbo].[Area](
    [ID] [bigint] identity (1, 1) primary key,
    [Name] [nvarchar](100) NOT NULL
    )
GO
Run Code Online (Sandbox Code Playgroud)

运行实体数据模型向导(使用'数据库中的EF Designer')后,我的项目有edmx文件和一些新的.cs文件,但似乎它没有生成它需要的所有内容.

例如,在我的DatabaseEntities类中,我得到了:

    public virtual DbSet<Area> Areas { get; set; }
Run Code Online (Sandbox Code Playgroud)

但是,"区域"类型(以及其他三种缺失类型)没有定义.我也缺少存储过程的功能.

我已经尝试删除新文件并重新运行模型向导,但我得到了相同的结果.

有没有其他人遇到这个?

图片的标题说明:

我在最近的几次尝试中注意到,当向导运行时我也遇到错误:"未在项目上安装Entity Framework包".但是,当我点击它时,它仍然生成edmx和model.context.

我对Entity Framework版本6.0.0和6.1.2都有同样的问题.

重新安装框架对问题没有影响.

更新:

卸载nuget并重新安装最新版本允许我通过nuget安装EntityFramework而不会出错.但是,现在Add New Item对话框中缺少ADO.NET数据模型.

小智 7

确保表有一个键列。如果表中没有键列,则不会生成视图。


Nig*_*mes 2

我所做的涉及几个步骤,我必须对在问题下面发表评论的人给予一些信任。

1)我卸载了nuget包管理器并重新安装了最新版本(显然我的不是新鲜的)。这使我能够通过块安装 EntityFramework,没有错误或回滚消息。

2)我不确定这是否有帮助,但我还通过微软网站重新安装了 Entity Framework Tools for Visual Studio。我仍然不确定是否有必要两者兼而有之。

3) 添加新项对话框中似乎缺少 ADO.NET 实体数据模型模板。选择“添加 -> 组件”而不是“添加 -> 新项目”后,它神秘地出现在两个列表下。

完成后,我就可以运行 EF Designer 并且生成的所有内容都没有问题。