0

我有一个使用 EF5 映射到 SQL 数据库的 Web 应用程序。这是标准的会员数据库,我添加了一些额外的表格。在那个项目中像冠军一样工作。

我有第二个项目,一个运行 TCP 的服务器的 Windows 服务,它需要将项目插入到同一个数据库中。因此,我从第二个项目中引用了 Web 应用程序,并且可以根据需要查看我的 DbContext 和实体类型。

但是,在运行时,我的所有 DbSet 都没有填充数据。我也尝试过显式打开连接以执行查询,如下所示:

 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();
    }

结果是错误的,但连接已创建并且读者知道我的表中有四个字段。有谁知道这应该在我的网络应用程序中工作但不能在引用应用程序中工作的原因?

4

1 回答 1

0

I had forgotten that the connection string from the web.config file is only honored when running as a web app. The TCP service .exe needs its own copy of the connection string in App.config. It just happened that the default (implicit) connection string on my TCP service connected to a valid, but empty, copy of my database.

于 2013-06-10T23:20:43.543 回答