1

我在 MS VS 2012 express 下创建了应用程序。我正在使用实体框架访问本地数据库 SQL Server Compact 4.0。一切正常:

网页配置

  <connectionStrings>
   <add name="KMDBContext" connectionString="Data Source=|DataDirectory|\kmdbs.sdf" providerName="System.Data.SqlServerCe.4.0"/>
  </connectionStrings>

课程L.cs

public class KMDBContext : DbContext
{
    public DbSet<LessonsL> LessonsLs { get; set; }
}

LessonsLController.cs

private KMDBContext db = new KMDBContext();

但我无法连接到外部 SQL Server 数据库。测试连接返回正面结果。我可以使用 MS Server Management Studio 处理外部数据库。但不能检索或存储数据。我可以在数据库资源管理器中看到外部数据库,但 MS VS 2012 仍然连接到某个本地文件(pdb 或其他文件)。

网页配置

  <connectionStrings>
    <add name="LessonLs" connectionString="server=ustsql;database=LessonLs;Integrated Security=true" providerName="System.Data.SqlClient" />
  </connectionStrings>

公里数据文件

public class KMDContext : DbContext
{
    public DbSet<kmd> LessonsLs { get; set; }
}

KMDController.cs

private KMDContext db = new KMDContext();

谁能说我错过了什么?谢谢

4

2 回答 2

0

您的连接字符串的名称仍然需要是“KMDContext”,因为那是您的 DbContext 的名称。

网页配置

<connectionStrings>
    <add name="KMDContext" connectionString="server=ustsql;database=LessonLs;Integrated Security=true" providerName="System.Data.SqlClient" />
</connectionStrings>
于 2013-05-07T15:10:55.733 回答
0

也许问题在于连接到 SQL Server 上的现有表。我首先创建了表,然后尝试连接到它。

一旦我删除了所有本地 PC 上的应用程序和 SQL Server 上的表,并从头开始再次创建应用程序,我就能够使用外部 SQL 数据库。然后,外部 SQL 数据库中的表由本地 PC 上的应用程序自动创建。

无论如何,感谢 ckal,整个问题似乎出在命名约定中。从一开始我就没有使用正确的名称。

实际工作代码:

网页配置

  <connectionStrings>
    <add name="KMD1DBContext" connectionString="server=ustsql;database=LessonLs;Integrated Security=true" providerName="System.Data.SqlClient" />
  </connectionStrings>

KMD1.cs

public class KMD1
{
    ...
}

public class KMD1DBContext : DbContext
{
    public DbSet<KMD1> kmds { get; set; }
}

KMD1Controller.cs

private KMD1DBContext db = new KMD1DBContext();

外部 SQL 数据库中的表名

KMD1
于 2013-05-08T08:35:28.030 回答