我使用EF来管理我的数据库,我已成功设置数据库,运行迁移,更新数据库,并在MSSQL Studio中检查以确认记录是否存在。
但是,当我尝试对DB运行查询时,调试窗口会打印
抛出异常:' System.Data.SqlClient.SqlException'在System.Data.dll
中
直到看起来呼叫最终超时,才会返回任何内容。
这是我的查询。
public async Task<Feature> GetFeatureById(int id){
try {return await _dbcontext.Features.FirstAsync(m => m.Id == id); }
catch (Exception e) {return null;}
}
我也尝试过这种变化:
return await (await _dbcontext.Features.AnyAsync(m => m.Id == id) ?
_dbcontext.Features.FirstAsync(m => m.Id == id) :
Task.Run(() => new Feature()));
这种变化:
_dbcontext.Features.SqlQuery(
String.Format("SELECT * FROM [Features] WHERE {0} = Id", id))
.FirstAsync();
修改 当我打印出异常消息时,这是来自调试控制台的消息:
建立与SQL Server的连接时发生与网络相关或特定于实例的错误。服务器未找到或无法访问。验证实例名称是否正确,以及SQL Server是否配置为允许远程连接。
这增加了我的困惑,因为就像我说的那样,当我运行&#34; Update-Database -StartupProject [projectName]&#34;
时,项目连接到DB就好了修改 这是app.config中的连接字符串
<add name="Context" connectionString="Data Source=localhost\mssqlserver2008;Initial Catalog=HA_Madmin;Integrated Security=True;MultipleActiveResultSets=True" providerName="System.Data.SqlClient" />
但是当我打印出来时
_dbcontext.Database.Connection.ConnectionString
我看到以下内容:
Data Source=.\SQLEXPRESS;Initial Catalog=Context;Integrated Security=True;MultipleActiveResultSets=True
答案 0 :(得分:0)
原来问题就在那里,因为我的应用程序在一个应用程序池中运行,其身份与我的数据库连接设置的身份不同。