2017-06-15 75 views
0
  • 试图先使用Microsoft SQL Server Managment Server创建数据库。我无法使用当前的凭据来创建导致错误的新数据库。这是通过使用我的管理员凭据解决的。
  • 将该应用程序作为空白项目启动,但使用的是网页表单。
  • 应用程序启动时没有任何东西会建议实体创建数据库。
  • 已验证SQL Express正在运行。实体框架未创建数据库或表

    • 在VS我能够连接到服务器并查看我在SQL Server对象资源管理器数据库,但是查看服务器资源管理器会显示我的连接名称和数据库将有一个红色的X。
    • 在服务器资源管理器中的VS中,我可以在服务器名称下键入。\ SQLEXPRESS并查看系统数据库,但在连接到数据库时看不到我的cfsEnergy DB>选择或输入数据库名称。
  • 使用Visual Studio 2015年

  • 试图在我的用户名和管理员帐户添加到什么,我相信是使用下面的脚本中的SQL Express组:https://gist.githubusercontent.com/wadewegner/1677788/raw/16862d429feaa5d2d799533c548632365a2f04ff/addselftosqlsysadmin.cmd

/App_Code文件/部门。 CS

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web; 

namespace cfsEnergyManagement.App_Code 
{ 
    public class department 
    { 
     public string ID { get; set; } 
     public string title { get; set; } 
     public List<utilityUse> utilityUse { get; set; } 
    } 
} 

/App_code/utilityUse.cs

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web; 

namespace cfsEnergyManagement.App_Code 
{ 
    public class utilityUse 
    { 
     public string utilityID { get; set; } 
     public string title { get; set; } 
     public string year { get; set; } 
     public string month { get; set; } 
     public int kiloWattHour { get; set; } 
     public int tonHour { get; set; } 
     public int kiloPoundsHour { get; set; } 
     public int netCost { get; set; } 
    } 
} 

/App_Code/dbContext.cs

using System; 
using System.Collections.Generic; 
using System.Data.Entity; 
using System.Linq; 
using System.Web; 

namespace cfsEnergyManagement.App_Code 
{ 
    public class cfsEnergyDb: DbContext 
    { 
    public DbSet<department> departments { get; set; } 
     public DbSet<utilityUse> utilityUses { get; set; } 

    } 
} 

dbContextRun.cs

namespace cfsEnergyManagement.App_Code 
{ 
    public class dbContextRun 
    { 

     cfsEnergyDb CfsEnergyDb = new cfsEnergyDb(); 

    } 
} 

连接字符串:web.config中

<connectionStrings> 
    <add name="cfsEnergyDb" connectionString="server=SQLEXPRESS;integrated security=SSPI;database=cfsEnergy" providerName="System.Data.SqlClient" /> 
</connectionStrings> 
+2

你有任何实际实例化你的上下文的代码吗?如果它从来没有实例化,我认为它不会做太多... – oerkelens

+0

我有另一个名为dbContextRun.cs的类,但什么都不做:p​​ublic class dbContextRun { cfsEnergyDb CfsEnergyDb = new cfsEnergyDb(); } –

+1

而且我假设你实际上是_executing_代码莫名其妙?在应用程序中是否有Main()或其他入口点?或者你正在建立一个图书馆,它不能也不会真正自行运行? – oerkelens

回答

1

因为你没有实例cfsEnergyDb类。只有实体框架,并且只有在您尝试首次从数据库表(任何数据库查询)访问任何数据时才创建数据库。因此,尝试从表中访问数据,EF将在数据库中为您创建所有表(在连接字符串中指定)。

+0

我用cfsEnergyDb添加了另一个文件CfsEnergyDb = new cfsEnergyDb();是否还有其他需要添加的内容才能使实体正常工作? –

+1

如果还没有创建,则尝试访问数据,如cfsEnergyDb.departments.ToList();在实例化检查后,它肯定会创建 – Rajput

+0

cfsEnergyDb.department.ToList在当前上下文中不存在。 –