Asp.net mvc 3 使用MVC 3 ASP.net连接到SQL Server 2008
我不熟悉ASP.net的MVC3(使用VB),我正在尝试创建一个连接到SQL 2008 server数据库的应用程序。我已经阅读了一个教程(MicrosoftASP.net的电影数据库教程),但该教程使用的是SQLCompactEdition。我很难连接。我假设一旦创建了模型,就可以通过更改Web.config文件(位于应用程序文件夹的根目录下)中的连接字符串来连接SQL 2008,这是否正确?我从App_数据文件夹中删除了sql ce数据库。在MicrosoftSQLServerManagementStudio中,我创建了一个新的数据库。然后我将其添加到我的Web.config文件中:Asp.net mvc 3 使用MVC 3 ASP.net连接到SQL Server 2008,asp.net-mvc-3,entity-framework-4.1,Asp.net Mvc 3,Entity Framework 4.1,我不熟悉ASP.net的MVC3(使用VB),我正在尝试创建一个连接到SQL 2008 server数据库的应用程序。我已经阅读了一个教程(MicrosoftASP.net的电影数据库教程),但该教程使用的是SQLCompactEdition。我很难连接。我假设一旦创建了模型,就可以通过更改Web.config文件(位于应用程序文件夹的根目录下)中的连接字符串来连接SQL 2008,这是否正确?我从App_数据文件夹中删除了sql ce数据库。在MicrosoftSQLServerManagem
<connectionStrings>
<add name="ConnectionName"
providerName="System.Data.SqlClient"
connectionString="Data Source=DELERIUM-PC;Initial Catalog=iDjItDb;Integrated Security=True" />
</connectionStrings>
当我运行应用程序并尝试查看与模型关联的控制器时,出现以下错误:
支持“iDjItDBContext”上下文的模型自
数据库已创建。手动删除/更新数据库,
或者使用IDatabaseInitializer实例调用Database.SetInitializer。
例如,DropCreateDatabaseIfModelChanges策略将
自动删除并重新创建数据库,并可以选择为其设定种子
有了新的数据
要连接并使用2008 SQL数据库,我必须做什么
谢谢
jason如果确定模型与数据库兼容,则可以删除上下文类中的
includeMetadata约定
public class iDjItDBContext : DBContext
{
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Conventions.Remove<IncludeMetadataConvention>();
}
}
否则,您可以选择由外部工具生成更改脚本的选项
编辑
将连接字符串名称更改为iDjItDBContext
,以便名称与DbContext
名称匹配
<connectionStrings>
<add name="iDjItDBContext"
providerName="System.Data.SqlClient"
connectionString="Data Source=DELERIUM-PC;Initial Catalog=iDjItDb;Integrated Security=True" />
</connectionStrings>
谢谢你的回复。虽然这消除了所有错误,但我对数据存储的位置感到困惑。当我向应用程序添加新数据时,我可以看到它已保存(即使在重新启动服务器实例之后),但SQL server上指定的数据库中没有数据,App_data文件夹中也没有数据库。它只是存储在内存中吗?谢谢,汉克斯,看来已经修好了@尽管我已经为我的数据源指定了sql server连接字符串的完整版本,但我认为该程序实际上使用了现有的application services数据源。我想使用我的本地数据源创建数据库,并通过EF执行crud。你能帮我吗?
<connectionStrings>
<add name="iDjItDBContext"
providerName="System.Data.SqlClient"
connectionString="Data Source=DELERIUM-PC;Initial Catalog=iDjItDb;Integrated Security=True" />
</connectionStrings>
public class iDjItDBContext : DBContext
{
public iDjItDBContext() : base("ConnectionName")
{
}
}