我有一个运行良好并正确连接到数据库服务器的 EF 代码优先 Web 应用程序。我在解决方案中添加了一个控制台应用程序,以测试将与该应用程序一起使用的服务的逻辑。
对控制台应用程序不保存数据的原因感到头疼,所以我将其缩减为从数据库中提取的简单数据,结果发现原始控制台应用程序正在保存记录,但保存到与指定数据库不同的数据库在连接字符串中。
这是 app.config 中的连接字符串:
<add name="DatabaseContext" connectionString="Data Source=xxx.xx.x.xx; Initial Catalog=OKWU_Gateway; User ID=xxxxx; Password=********; Trusted_Connection=False;" providerName="System.Data.SqlClient" />
<add name="DevelopmentEntities" connectionString="metadata=res://*/EntityModel.csdl|res://*/EntityModel.ssdl|res://*/EntityModel.msl;provider=System.Data.SqlClient;provider connection string="Data Source=;Data Source=|DataDirectory|\OKWU_Gateway.mdf" providerName="System.Data.EntityClient" />
数据库上下文是
控制台应用程序非常简单
Database.SetInitializer<DatabaseContext>(null);
static void Main(string[] args)
{
using (DatabaseContext db = new DatabaseContext())
{
var query = from u in db.Users where u.Id == 1 select u;
foreach (User u in query)
{
Console.WriteLine(u.Id + " " + u.FirstName + " " + u.LastName);
}
Console.ReadLine();
}
}
但不是连接到远程服务器上的数据库,而是连接到开发机器上的 sqlexpress 并访问该数据库。
UniversityGateway.Data.DatabaseContext
我尝试更改连接字符串以指向 |DataDirectory| 到 SQL 连接字符串,这没有任何区别。连接字符串与 web.config 中的相同,正如我所说,Web 应用程序运行良好。
关于我所缺少的任何想法或指出我解决此问题的正确方向?