我有一个使用EF5映射到SQL数据库的Web应用程序。这是标准的成员资格数据库,我添加了一些额外的表。在该项目中扮演冠军的角色。
我有第二个项目,一个运行TCP服务器的Windows服务,需要将项目插入到同一个数据库中。所以我从第二个项目中引用了Web应用程序,可以根据需要查看我的DbContext和实体类型。
但是,在运行时,我的DbSets都没有填充数据。我已经尝试过显式打开连接来执行查询,如下所示:
public MyContext()
: base("DefaultConnection")
{
try
{
Database.Connection.Open();
var command = new System.Data.SqlClient.SqlCommand("SELECT * FROM dbo.Trackers", (SqlConnection) Database.Connection);
var reader = command.ExecuteReader();
bool result = reader.Read();
}
catch (Exception exception)
{
//handle exception
}
this.Database.Connection.Close();
}
结果为false,但是创建了连接,并且读者知道我的表中有四个字段。是否有人知道这应该在我的网络应用程序中工作但不在引用应用程序中?
答案 0 :(得分:0)
我忘记了web.config文件中的连接字符串仅在作为Web应用程序运行时受到尊重。 TCP服务.exe需要在App.config中拥有自己的连接字符串副本。碰巧我的TCP服务上的默认(隐式)连接字符串连接到我的数据库的有效但空副本。