我正在尝试学习实体框架,我遇到了一个问题,即数据库中的Code First没有生成我的模型类。我正在使用此guide来学习。
当我进入第3步,逆向工程师模型时,除了没有创建模型类之外,一切正常。我只看到我的Context类。请注意,我也使用与示例中不同的数据库。我正在使用已经存在的数据库。
要清楚,以下是我执行的步骤:
窗口关闭,几秒钟后我在项目“ModelContext.cs”中得到一个新文件。此文件包含从DbContext派生的类。它包含我选择的所有表的DbSet,但是Visual Studio正在抱怨,因为这些类不存在。根据我对指南的理解,应该生成这些类。
我的问题听起来与此人提出的question完全相同,但他们没有得到答案。
其他一些细节:
Thumper询问我试图引入的表的架构。我只是尝试了一个表,我仍然得到相同的结果。
以下是表架构:
CREATE TABLE [dbo].[LUCareManagers] (
[CMName] VARCHAR (50) NOT NULL,
[UserID] VARCHAR (25) NULL,
[CMID] INT IDENTITY (1, 1) NOT NULL,
[Active] CHAR (1) NULL,
[CMEmail] VARCHAR (50) NULL,
[CMPhone] VARCHAR (12) NULL,
[CMFax] VARCHAR (12) NULL,
[Title] VARCHAR (100) NULL,
[EmployeeID] VARCHAR (50) NULL,
CONSTRAINT [PK_LUCareManagers] PRIMARY KEY CLUSTERED ([CMID] ASC)
);
以下是生成的DBContext:
public partial class TestContext : DbContext
{
public TestContext()
: base("name=TestContext")
{
}
public virtual DbSet<LUCareManager> LUCareManagers { get; set; }
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Entity<LUCareManager>()
.Property(e => e.CMName)
.IsUnicode(false);
modelBuilder.Entity<LUCareManager>()
.Property(e => e.UserID)
.IsUnicode(false);
modelBuilder.Entity<LUCareManager>()
.Property(e => e.Active)
.IsFixedLength()
.IsUnicode(false);
modelBuilder.Entity<LUCareManager>()
.Property(e => e.CMEmail)
.IsUnicode(false);
modelBuilder.Entity<LUCareManager>()
.Property(e => e.CMPhone)
.IsUnicode(false);
modelBuilder.Entity<LUCareManager>()
.Property(e => e.CMFax)
.IsUnicode(false);
modelBuilder.Entity<LUCareManager>()
.Property(e => e.Title)
.IsUnicode(false);
modelBuilder.Entity<LUCareManager>()
.Property(e => e.EmployeeID)
.IsUnicode(false);
}
}