我在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="data source=BBBBBBBB;initial catalog=AAAAAAAA;user id=yyyyyy;password=xxxxxxxxx;persist security info=True;application name=EntityFramework;MultipleActiveResultSets=True"" providerName="System.Data.EntityClient" />
</connectionStrings>
答案 0 :(得分:0)
将连接字符串添加到web.config。在运行时不使用类库的app.config。