我正在开发一个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; }
}
}
项目构建正常,但是当我去运行该站点时,数据库中没有创建表,我收到一条错误,指出数据库无法找到我尝试访问的上下文对象,可能是因为代码首先没有生成任何必要的表格。
任何想法为什么它根本不会生成任何表格,而不是给我任何类型的错误信息?
答案 0 :(得分:7)
你有初始化策略吗?
Database.SetInitializer(new DropCreateDatabaseIfModelChanges<SalesToolEntities>());
根据您订阅的内容,您自己创建了数据库。然后,您需要指定初始化 策略否则不会将表/数据添加到数据库并查询数据库将导致异常:{“指定的表不存在。[sometable]”}