EF代码首先不生成表

时间:2011-06-08 15:37:44

标签: asp.net-mvc entity-framework ef-code-first

我正在开发一个EF Code第一个网站,我编写了我的类和一个上下文类,其来源是:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data.Entity;
using MySite.SalesTool.Data.Entities;
using System.Data.Entity.ModelConfiguration.Conventions;


namespace MySite.SalesTool.Data
{
    public class SalesToolEntities : DbContext
    {
        public DbSet<User> Users { get; set; }
        public DbSet<UserRole> UserRoles { get; set; }
        public DbSet<Job> Jobs { get; set; }
        public DbSet<JobAssigner> JobAssigners { get; set; }
        public DbSet<JobFile> JobFiles { get; set; }
        public DbSet<JobStatus> JobStatuses { get; set; }
        public DbSet<AssignedUser> AssignedUsers { get; set; }
    }
}

项目构建正常,但是当我去运行该站点时,数据库中没有创建表,我收到一条错误,指出数据库无法找到我尝试访问的上下文对象,可能是因为代码首先没有生成任何必要的表格。

任何想法为什么它根本不会生成任何表格,而不是给我任何类型的错误信息?

1 个答案:

答案 0 :(得分:7)

你有初始化策略吗?

Database.SetInitializer(new DropCreateDatabaseIfModelChanges<SalesToolEntities>());

根据您订阅的内容,您自己创建了数据库。然后,您需要指定初始化 策略否则不会将表/数据添加到数据库并查询数据库将导致异常:{“指定的表不存在。[sometable]”}