c# - Entity Framework 控制台应用程序连接到错误的数据库

标签 c# entity-framework ef-code-first

我有一个 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=&quot;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();
        }
    }

但不是连接到远程服务器上的数据库,而是连接到开发机器上的 sqlexpress 并访问该数据库。

UniversityGateway.Data.DatabaseContext

我尝试更改连接字符串以指向 |DataDirectory|到 SQL 连接字符串,这没有任何区别。连接字符串与 web.config 中的相同,正如我所说,网络应用程序运行良好。

关于我遗漏的任何想法或指出正确的方向来解决这个问题?

最佳答案

好的,经过大量挖掘,我找到了解决方案。不确定它是否是正确的/最好的,但它有效,所以我可以继续前进。

由于控制台应用程序不遵守 app.config 中的连接字符串,我在代码中指定了连接

db.Database.Connection.ConnectionString

虽然我仍然觉得我在这里遗漏了一些东西。

发现我的问题的另一部分是 EF Codefirst 不能很好地处理 Sql Server 2005 DateTime 数据类型。

关于c# - Entity Framework 控制台应用程序连接到错误的数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11066466/

相关文章:

c# - 如何将 EF Code First DbContext 绑定(bind)到 Asp.Net 数据源?

database - EF 代码优先 : Many-to-many and one-to-many

entity-framework - 在 Visual Studio 2012 中使用 EF 脚手架创建新的 Web API Controller 时出现 "Object reference not set to an instance of an object"

c# - Log4Net在日志中打印 "ThreadID"和 "Thread Name"

c# - 循环遍历 c# 字典中的项目

c# - 找不到连接字符串 WebSecurity.IntializeDatabaseConnection

c# - Entity Framework 一对多

c# - 如何从 Firebase 获取 Item Key

c# - 在 MVC 中调用方法而不加载 View

entity-framework - 无法为无法识别的元素提供者检索元数据