我有一个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" />
DatabaseContext是
控制台应用非常简单
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();
}
}
但它没有连接到远程服务器上的数据库,而是连接到dev机器上的sqlexpress并点击该数据库。
UniversityGateway.Data.DatabaseContext
我尝试更改连接字符串以指向| DataDirectory |到SQL连接字符串,并没有任何区别。连接字符串与web.config中的连接字符串相同,正如我所说,Web应用程序正常工作。
关于我缺少的任何想法或指出我正确的方向来解决这个问题?
答案 0 :(得分:0)
经过大量挖掘后我找到了解决方案。不确定它是否是正确的/最佳的,但它确实有效,所以我可以继续前进。
由于控制台应用程序不尊重app.config中的连接字符串,因此我在代码中指定了连接
db.Database.Connection.ConnectionString
虽然我觉得我在这里错过了一些东西。
发现我的另一部分问题是EF Codefirst与Sql Server 2005 DateTime数据类型不兼容。