MVC 3 代码优先应用的数据
Posted
技术标签:
【中文标题】MVC 3 代码优先应用的数据【英文标题】:Data for MVC 3 code first app 【发布时间】:2011-09-01 14:13:12 【问题描述】:这世上不可能这么难。连续 30 小时以来,我一直在尝试用数据填充代码优先数据库。我尝试过使用 sql server compact 实例和 sql server express 实例。
我正在使用 Visual Studio 2010 sp1,我的 sql server 是 SQL Server 2008 R2 (express)。首先,我无法使用管理工作室打开 EF 创建的任何数据库。 Management Studio 使用正确架构创建的任何数据库都无法连接到 Visual Studio 应用程序。如果我指出那个文件 EF 会连接到它,我就会有印象。架构是正确的,因为我从 EF 创建的数据库中导出了它。但是,这不起作用,并且我收到数据库已存在的错误。
在使用脚本通过 Visual Studio 数据库工具将数据添加到 EF 创建的数据库后,该站点无法运行,我收到一个错误,即数据库日志文件不同或文件已损坏。
如果有人能告诉我这应该如何工作,我将不胜感激。项目已经准备好了,我只需要加载生产数据并上传,当然是昨天到期的。
如果您需要,这里有一些详细信息: 尝试创建数据库时,我在全局 asax 代码文件中使用以下代码行,并在尝试连接到数据库时将其注释掉: Database.SetInitializer(new storagePropertyInitializer());
我尝试过的一些连接字符串:
<add name="storageContext" connectionString="data source=.\SQLEXPRESS;Persist Security Info=False;User ID=xxxx;Password=xxxxx;Database=irrStorage;AttachDBFilename=|DataDirectory|irrStorageV12.mdf;User Instance=true" providerName="System.Data.SqlClient" />
<add name="storageContext" connectionString="data source=.\SQLEXPRESS;Integrated Security=SSPI;Database=storagePropsDB;AttachDBFilename=|DataDirectory|irrStorageProperties.mdf;User Instance=true" providerName="System.Data.SqlClient" />
<add name="storageContext" connectionString="Data Source=|DataDirectory|irrStorageProperties.sdf" providerName="System.Data.SqlServerCe.4.0" />
谢谢, 约翰
【问题讨论】:
有什么理由必须直接寻址 DB 文件而不是 SQL 服务器实例名称 + 默认目录? @BrokenGlass : 当包含在 app_data 中时,自动附加数据库的工作方式是这样的 【参考方案1】:如果您有 sdf 文件,请尝试以下方法在 sql management studio 中打开数据库。
How can I manage SQL CE databases in SQL Server Management Studio?
我知道它不能解决其他问题,但您的数据导入可能会以这种方式工作。请注意,您的网站一定不能运行,否则数据库将被使用。使用完后分离。
【讨论】:
谢谢,但我有 sql server compact ce 4 正在运行,它不适用于 sql server management studio。 啊呀。抱歉 : ) 在这种情况下,请尝试 sqlcetoolbox.codeplex.com 或 vs2010 sql 工具(如果您尚未运行它们):erikej.blogspot.com/2010/12/…以上是关于MVC 3 代码优先应用的数据的主要内容,如果未能解决你的问题,请参考以下文章
使用带有实体框架代码优先和 ASP.NET MVC 3 和 mvc miniprofiler 的 SQL Server CE 时出现问题
ASP.NET MVC 3 EF 代码优先 - 掌握详细信息 CRUD
我的 MVC 5 代码优先数据库在哪里创建? (不使用 AttachDbFilename)