如何使用数据库第一种方法创建数据库

时间:2014-07-19 18:11:31

标签: asp.net-mvc-4 ef-code-first

我的应用程序是ASP.NET MVC 4 我想通过数据库第一种方法创建数据库。

以下是我的上下文类。

public class MusicStoreEntities : DbContext
{
    public DbSet<Album> Albums { get; set; }
    public DbSet<Genre> Genres { get; set; }
    public DbSet<Artist> Artists { get; set; }
    public DbSet<Cart> Carts { get; set; }
    public DbSet<Order> Orders { get; set; }
    public DbSet<OrderDetail> OrderDetails { get; set; }
}

下面是web.config文件:

             <?xml version="1.0"?>
         <!--
       For more information on how to configure your ASP.NET application, please visit
               http://go.microsoft.com/fwlink/?LinkId=152368
           -->

        <configuration>
  <appSettings>
  <add key="webpages:Version" value="1.0.0.0"/>
 <add key="ClientValidationEnabled" value="true"/>
 <add key="UnobtrusiveJavaScriptEnabled" value="true"/>
  </appSettings>

 <system.web>
   <roleManager enabled="true" />
  <compilation debug="true" targetFramework="4.0">
    <assemblies>
    <add assembly="System.Web.Abstractions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
    <add assembly="System.Web.Helpers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
    <add assembly="System.Web.Routing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
    <add assembly="System.Web.Mvc, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
    <add assembly="System.Web.WebPages, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
  </assemblies>
  </compilation>

   <authentication mode="Forms">
    <forms loginUrl="~/Account/LogOn" timeout="2880" />
   </authentication> 

  <pages>
   <namespaces>
     <add namespace="System.Web.Helpers" />
     <add namespace="System.Web.Mvc" />
     <add namespace="System.Web.Mvc.Ajax" />
     <add namespace="System.Web.Mvc.Html" />
     <add namespace="System.Web.Routing" />
     <add namespace="System.Web.WebPages"/>
   </namespaces>
  </pages>
 </system.web>

   <system.webServer>
  <validation validateIntegratedModeConfiguration="false"/>
  <modules runAllManagedModulesForAllRequests="true"/>
    </system.webServer>

   <runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
   <dependentAssembly>
    <assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" />
    <bindingRedirect oldVersion="1.0.0.0-2.0.0.0" newVersion="3.0.0.0" />
     </dependentAssembly>
   </assemblyBinding>
        </runtime>
  <connectionStrings>
    <add name="MusicStoreEntities" connectionString="Data Source=.\SQLEXPRESS;Initial Catalog=finaldaCodeFirst;Integrated Security=True;User Instance=True" providerName="System.Data.SqlClient"/>

  </connectionStrings>  
    </configuration>

请指导我,为什么数据库没有在sql server中创建?

这里缺少什么?

1 个答案:

答案 0 :(得分:0)

首先在App_folder中创建空的MusicStoreEntities.mdf文件,然后 在web.config中

<connectionStrings>
<add name="MusicStoreContext" providerName="System.Data.SqlClient"
 connectionString="Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\MusicStoreEntities.mdf;Integrated Security=True;User Instance=True"/>
  </connectionStrings>

然后在Dbcontext类中进行更改:

public class MusicStoreEntities : DbContext
{
      // MusicStoreContext use the same name in the connectionstring
      public MusicStoreEntities() : base("MusicStoreContext")
        {

        }

    public DbSet<Album> Albums { get; set; }
    public DbSet<Genre> Genres { get; set; }
    public DbSet<Artist> Artists { get; set; }
    public DbSet<Cart> Carts { get; set; }
    public DbSet<Order> Orders { get; set; }
    public DbSet<OrderDetail> OrderDetails { get; set; }


}

如果要更新同一个项目,则必须使用“Package Manager Console”更新数据库..