我尝试首先使用 C# 和 Entity Framework 代码学习 MVC 4。我已经创建了模型,创建了数据库并用种子数据填充了它。我有一个 ContextInitializer 类,每次测试时都会删除并创建数据库。当我运行它时,我可以看到我的数据填充在我的网站上,我可以编辑、创建和删除它。但我真的不知道它存储在哪里。
我查看了 webconfig 文件并看到连接字符串如下:
"Data Source=(LocalDb)\v11.0;Initial Catalog=aspnet-CCConsolidation-20140610143008;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|\aspnet-CCConsolidation-20140610143008.mdf"
我登录了 localdb,但根本看不到该数据库。没有任何错误。我尝试更改连接字符串并将其指向 Windows Azure 上的数据库,但仍然无法在任何地方看到该数据库。我在 App_Data 文件夹中也没有看到 mdf 文件。
所以我的问题有两个:
1)我的数据库隐藏在哪里?
2) 需要时如何将其部署到 Windows Azure?就像更改连接字符串一样简单吗?我已经尝试过了,但没有成功。
请帮忙!
注意:我在这个网站上看到了一些“类似”的问题,但答案让我看看我所做的 webconfig。我已经追踪到我的本地数据库,但仍然找不到它。
我指的问题是Where does ASP.NET MVC 4 stores accounts information?
我错过了什么吗?
<小时/>更新了我的 Windows Azure 连接字符串:
"Data Source=xxxx.database.windows.net;Initial Catalog=CCConsolidation;Integrated Security=False;Database=xxxx;User ID=xxxx@yyyy;Password=xxxxxx;Connect Timeout=15;Encrypt=False;TrustServerCertificate=False;AttachDBFilename=aspnet-CCConsolidation.mdf"
有人发现此连接字符串有任何问题吗?我在Webconfig中使用它来替换SQL Express,但没有创建数据库。
最佳答案
LocalDB 是 SQL Server 2012 中的一项新功能。它是一个简单的命令行可执行文件(不是服务),可以按需启动和停止数据库实例。这与应用程序的 App_Data
和旧的 AttachFile
无关。
您可以使用命令行启动、停止、删除或创建实例,例如:
SqlLocalDb create "MyInstance"
SqlLocalDb start "MyInstance"
SqlLocalDb info "MyInstance"
SqlLocalDb stop "MyInstance"
SqlLocalDb delete "MyInstance"
如果您想从 SSMS 连接到数据库,则需要指定以下数据库:
(localdb)\MyInstance
此数据库的优点是您不需要安装整个 SQL Server 实例、启动和停止服务、创建登录名、授予权限等。
database files are inside your Windows user profile folder ,并且该过程是在您自己的凭据下运行的,因此您也不需要向任何文件夹授予权限。
您可以在这里获取有关 LocalDB 的大量信息:Getting Started with SQL Server 2012 Express LocalDB
关于c# - 找不到用于带有 Entity Framework 的 MVC 4 的数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24191838/