0

我的数据库存储在 App_Data 中的 .mdf 中,并且运行良好。我的应用程序可以添加、编辑、删除记录。

但是这些表是不可见的。当我打开服务器资源管理器并附加我的 .mdf 并尝试查看表时,那里没有列出任何表。我也将文件附加到 SQL Server Management Studio,但唯一显示的表是文件夹中的表System Tables

从我能够从 MSDN 上的 technobabble 中收集到的信息,这可能是权限或所有权问题。我不知道权限,因为我能够连接到数据库并查询它并编辑/删除记录。所以也许是所有权;我在某处读到不属于自己的表dbo可能不会显示。但如果是这种情况,我不知道我的应用程序的所有权名称是什么,也不知道如何让 Management Studio 甚至 Server Explorer 显示其他用户拥有的表。

这是连接字符串,以防答案在那里:

<add name="EFDBContext" connectionString="Data Source=.\SQLEXPRESS;Integrated Security=SSPI;Initial Catalog=|DataDirectory|MLDatabase.mdf;Database=EFDbContext;User Instance=true" providerName="System.Data.SqlClient"/>

感谢任何可能为我指明正确方向的人!

预计到达时间。似乎是一个类似的问题,但我不知道那里的解决方案是否适用,因为我的数据库不是由脚本生成的,而是由实体框架(代码优先模型)生成的。

4

4 回答 4

1

我有一个类似的问题。我编写了数据库备份的脚本,将其添加到 mssql 服务器,并将我的连接字符串指向新的。

于 2012-03-03T11:36:09.853 回答
0

表格没有出现的原因当然是因为它们不在 .mdf 中。正如我在评论中指出的那样,我在 SQL Server 选择的其他位置找到了它们。

一种解决方法是让 EF 在所需的位置构建 SQL Server 数据库,停止 SQL Server 服务,将其移动到 App_Data 文件夹,适当地更改连接字符串,然后将其附加到 ASP.NET 项目。

另一个问题是SQL Server 的网络服务没有权限在 C:\Users\Me 文件夹或 Documents and Settings 文件夹中执行任何操作,直到您转到该文件夹​​并直接为网络服务分配权限。例如,只有这样,您才能将数据库附加到 SQL Server Management Studio。即使在 Visual Studio 安装 SQL Server 时也是如此……然后拒绝它访问 VS 保留其自己的项目的文件的权限。我不明白;IMO 任何意识到这一点的开发人员,为了完成她的工作,她要做的第一件事就是无论如何都要授予网络服务该权限。

于 2012-03-06T08:02:35.237 回答
0

检查配置中的 defaultConnectionFactory 类型。我希望它设置为 LocalConnectionFactory,因为这似乎是默认设置。

将其更改为以下内容,您的 SQL 实例将被使用。

<defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework">
  <parameters>
    <parameter value="Data Source=.; Integrated Security=True; MultipleActiveResultSets=True;" />
  </parameters>
</defaultConnectionFactory>

您的数据库应出现在 SQL Management Studio (SQLMS) 中,其名称应与命名空间匹配。

于 2014-11-13T03:37:44.440 回答
0

请不要担心。只需相应地重新配置 Web.config 文件中的连接字符串: - 从服务器名称中删除“\SQLEXPRESS”后缀;- 删除“User Instance=true”键/值对。

如果你的 DbContext 类是 StudentDbContext 然后把 Database=StudentDb;

或者

于 2016-02-13T06:18:42.320 回答