数据库未使用Entity Framework创建

时间:2017-01-04 12:46:56

标签: c# database entity-framework

我正在尝试使用Entity Framework创建一个Db,当我运行该程序时,数据库没有被创建,我错过了一些东西,因为我一直在讨论这个问题已经有一段时间了。

以下代码:

数据库:

 func signIn(signIn: GIDSignIn!, didSignInForUser user: GIDGoogleUser!, withError error: NSError!) {
    here i want to use lat and long
 }

员工:

class SchoolEmployeesContext : DbContext
{
    public SchoolEmployeesContext()
        : base("SchoolEmployeesDB") { }

    public DbSet<Department> Departments { get; set; }
    public DbSet<Employee> Employees { get; set; }
}

部门:

abstract class Employee
{
    public int EmployeeId { get; set; }
    public string EmployeeName { get; set; }
    public string EmployeeSurname { get; set; }
    public string Address { get; set; }
    public int Grade { get; set; }
    public double Salary { get; set; }
    public DateTime DateOfCommencement { get; set; }
    public string Username { get; set; }
    public string Password { get; set; }

    public Department DepartmentOfEmployee { get; set; }

    public Employee NewEmployee(Employee NewEmp)
    {
        return NewEmp;
    }

}

2 个答案:

答案 0 :(得分:0)

EF只会在您实例化DbContext类时触发在您的应用程序中创建数据库。因此,要触发此操作,请务必致电new SchoolEmployeesContext(),例如static void main()。虽然不是推荐的地方,但这不是你的核心问题。

还有其他选择,例如

  • 使用迁移并使用命令Database-Update
  • 使用迁移并使用命令Database-Update -Script获取EF生成的T-SQL以创建数据库

答案 1 :(得分:0)

将其放入Global.asax.cs

protected void Application_Start()
        {
            ....
            Database.SetInitializer(new DropCreateDatabaseIfModelChanges<SchoolEmployeesContext>());
       }

用这个来测试你的代码:

 try
           {
                using (database = new SchoolEmployeesContext())
                {
                    var data = database.Departments.ToList();
                }
            }
            catch (Exception ex)
            {
                Console.Write(ex);
            }

如果你的数据库尚未创建,你会得到一个例外原因。