Asp.net mvc 4 如何使用数据库优先方法创建数据库
我的应用程序是ASP.NETMVC4 我想通过数据库优先的方法创建数据库 下面是我的上下文类Asp.net mvc 4 如何使用数据库优先方法创建数据库,asp.net-mvc-4,ef-code-first,Asp.net Mvc 4,Ef Code First,我的应用程序是ASP.NETMVC4 我想通过数据库优先的方法创建数据库 下面是我的上下文类 public class MusicStoreEntities : DbContext { public DbSet<Album> Albums { get; set; } public DbSet<Genre> Genres { get; set; } public DbSet<Artist> Artists { get; set; }
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; }
}
公共类MusicStoreEntities:DbContext
{
公共数据库集相册{get;set;}
公共数据库集类型{get;set;}
公共数据库集艺术家{get;set;}
公共DbSet Carts{get;set;}
公共数据库集命令{get;set;}
公共DbSet 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中创建的
这里缺少什么?首先在App_文件夹中创建空的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; }
}
公共类MusicStoreEntities:DbContext
{
//MusicStoreContext在connectionstring中使用相同的名称
公共MusicStoreEntities():基(“MusicStoreContext”)
{
}
公共数据库集相册{get;set;}
公共数据库集类型{get;set;}
公共数据库集艺术家{get;set;}
公共DbSet Carts{get;set;}
公共数据库集命令{get;set;}
公共DbSet OrderDetails{get;set;}
}
如果您正在更新同一项目,则必须使用“Package Manager Console”更新数据库。…首先数据库是否意味着您先设计数据库,然后通过映射到数据库文章来创建实体?不,我还没有设计数据库。但是我想通过这些模型进行设计,这些模型被添加为
dbset
。那将是先编写代码,除非我遗漏了什么。无论如何,您可以选择右键单击在ef中设计的实体,然后选择从模型生成数据库,然后根据需要更新数据库。不,我没有添加edmx文件。我刚刚创建了上下文类并添加了dbset。。和上下文类相同的名称添加了连接字符串,并希望创建数据库。我认为您必须将其放入启动代码中。有一个函数用于检查数据库,如果数据库不存在,则创建一个数据库。