实体框架使用错误的名称创建数据库

时间:2017-08-31 21:52:27

标签: c# asp.net .net sql-server entity-framework

我的解决方案中有两个项目:

  • 使用EF
  • 的ASP.NET Web API项目
  • 使用EF
  • 的控制台应用

两个项目都配置为连接到SQL Server,并且在app/web.config中定义了相同的连接字符串:

<add name="AppContext" 
     providerName="System.Data.SqlClient" 
     connectionString="Data Source=localhost\SQLEXPRESS;Database=XYZAC;Integrated Security=True" />

只有控制台应用才会出现此问题。 Web应用程序正确创建XYZAC数据库。但是,控制台应用程序会创建一个名称与Namespace.AppContext一致的数据库,这根本不是我需要的。因此,这些项目之间没有沟通。

我尝试在控制台应用的连接字符串中将Database=更改为Initial Catalog=,但它没有改变任何内容。

这可能是什么原因?是否会发生这种情况,因为API是通过IIS APPPOOL\XYZAC用户和应用程序WINSRV\Administrator登录的?似乎不太可能,因为两者都有相同的权限组和访问所有内容,但我不确定还有什么可能是原因。

我在这里做错了什么?

编辑:我正在这两个项目之间共享数据库模型。我将尝试将连接字符串硬编码到构造函数中。

2 个答案:

答案 0 :(得分:0)

尝试从创建的xyz数据库到控制台应用程序的脚手架,看看它是否与脚手架上下文连接。

答案 1 :(得分:0)

对这样的字符串进行硬编码解决了这个问题:

public AppContext() : base("Sql n stuff;XYZAC")

冷却。只要它有效,对吧?

相关问题