实体框架:连接到外部数据库
问题描述:
我已经在MS VS 2012 express下创建了应用程序。我正在使用实体框架来访问本地数据库SQL Server Compact 4.0。一切都运行得很好:实体框架:连接到外部数据库
的Web.config
<connectionStrings>
<add name="KMDBContext" connectionString="Data Source=|DataDirectory|\kmdbs.sdf" providerName="System.Data.SqlServerCe.4.0"/>
</connectionStrings>
LessonsL.cs
public class KMDBContext : DbContext
{
public DbSet<LessonsL> LessonsLs { get; set; }
}
LessonsLController.cs
private KMDBContext db = new KMDBContext();
但我不能够连接到外部SQL Server数据库。测试连接返回正面结果。我可以使用MS Server Management Studio使用外部数据库。但无法检索或存储数据。我可以在Database Explorer中看到外部数据库,但MS VS 2012仍然连接到某个本地文件(pdb或其他)。
的Web.config
<connectionStrings>
<add name="LessonLs" connectionString="server=ustsql;database=LessonLs;Integrated Security=true" providerName="System.Data.SqlClient" />
</connectionStrings>
kmd.cs
public class KMDContext : DbContext
{
public DbSet<kmd> LessonsLs { get; set; }
}
KMDController.cs
private KMDContext db = new KMDContext();
谁能说我缺少的是什么? thx
答
连接字符串的名称仍然需要为“KMDContext”,因为这是您的DbContext的名称。
的Web.config
<connectionStrings>
<add name="KMDContext" connectionString="server=ustsql;database=LessonLs;Integrated Security=true" providerName="System.Data.SqlClient" />
</connectionStrings>
答
也许问题是连接到现有的表SQL Server上。我先创建了表格,然后尝试连接到它。
一旦我删除了所有的应用程序,我的本地PC和SQL Server上的表,并从头开始创建应用程序,我能够使用外部SQL数据库。 外部SQL数据库中的表然后由应用程序从本地PC自动创建。
无论如何,感谢ckal,整个问题似乎是在命名约定。从一开始我就没有用正确的名字工作。
实际工作代码:
的Web.config
<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。在外部SQL数据库中的表CS
private KMD1DBContext db = new KMD1DBContext();
名称
KMD1
这只是改名数据Conections数据库浏览器,但仍然被应用到接法本地文件。 – nevo 2013-05-07 15:18:12
我发现这不是唯一的命名不匹配,thx – nevo 2013-05-08 08:36:49