实体框架抛出无效的对象名称

时间:2015-06-13 14:43:06

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

我在SQL Server中有一个包含多个表的数据库。

我在VS2013中创建了一个类库项目。创建了一个DBContext,将数据库添加为ADO.NET文件并创建了一个用于运行查询的存储库。

我创建了一个Web API2空项目,其中包含一个用于创建REST Api的控制器。

此控制器正在调用库存储库以运行查询,但它会引发异常:

Invalid object name 'dbo.TLog'

值得注意的是,这个表存在于我的数据库中。存储库创建的查询是

SELECT [Extent1].[idLog] AS [idLog], 
[Extent1].[description] AS [description], 
[Extent1].[insertDate] AS [insertDate]
FROM [dbo].[TLog] AS [Extent1]

如果我在SQL Server中运行它可以工作,但在我的Web项目中却没有。

控制器如下所示:

[Route("api/log")]
public HttpResponseMessage Get()
{
    var logs = MyRepository.GetAllLogs();
    HttpResponseMessage response = Request.CreateResponse(HttpStatusCode.OK, logs);
    return response;
}

存储库查询是

var query = from log in dataContext.Log select log;

我的连接字符串仅存在于库中,该库与数据库连接,而不是在Web项目的web.config中连接,并且是:

<connectionStrings>
     <add name="MyEntities" connectionString="metadata=res://*/MyModel.csdl|res://*/MyModel.ssdl|res://*/MyModel.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=BBBBBBBB;initial catalog=AAAAAAAA;user id=yyyyyy;password=xxxxxxxxx;persist security info=True;application name=EntityFramework;MultipleActiveResultSets=True&quot;" providerName="System.Data.EntityClient" />
</connectionStrings>

1 个答案:

答案 0 :(得分:0)

将连接字符串添加到web.config。在运行时不使用类库的app.config。