我正在开发一个 EF Code First 站点,并且我已经编写了我的类和上下文类,其来源是:
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; }
}
}
该项目构建得很好,但是当我运行该站点时,数据库中没有创建任何表,并且出现一条错误,指出数据库找不到我尝试访问的任何上下文对象,大概是因为代码首先尚未生成任何必要的表。
知道为什么它根本不会生成任何表格,也不给我任何类型的错误信息吗?
最佳答案
你有初始化策略吗?
Database.SetInitializer(new DropCreateDatabaseIfModelChanges<SalesToolEntities>());
从您订阅的内容来看,听起来好像您自己创建了数据库。然后你需要指定一个初始化 策略,否则不会将任何表/数据添加到数据库中,并且查询数据库将导致异常:{“指定的表不存在。[ sometable ]”}
关于asp.net-mvc - EF Code First 不生成表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6281447/