1

我已经创建了带有MVC模板的ASP.Net Web应用程序(.Net Framework)并安装了EF 6最新的稳定版本。创建了一个模型和上下文类。ASP.Net核心Web应用程序(.Net Framework)问题EF代码第一种方法

public class IAMContext: DbContext 
{ 
    public DbSet<Blog> Blogs { get; set; } 
} 
public class Blog 
{ 
    public int BlogId { get; set; } 
    public string Name { get; set; } 
} 

把下面的代码在控制器指数方法返回在Web.config中的视图

​​

最后连接字符串

<connectionStrings> 
<add name="IAMContext" 
connectionString="Data Source=***\SQL2016;Initial Catalog=IAM;Integrated Security=true;" 
providerName="System.Data.SqlClient"/> 

这工作得很好,创建了一个前在IAM DB中称为Blog。当我尝试在ASP.Net核心Web应用程序(.Net Framework)Web API项目中做同样的事情时,它不起作用。这里我在appsettings.json中提供了连接字符串。其余的代码是相同的。

"ConnectionStrings": { 
    "IAMContext": "Server=192.168.0.3\\SQL2016;Database=IAM;Trusted_Connection=True;" 
} 

执行它是后抛出它说

而与SQL Server建立连接时出现与网络相关的或特定于实例的错误的错误。服务器未找到或无法访问。验证实例名称是否正确,并将SQL Server配置为允许远程连接。 (提供者:SQL网络接口,错误:26 - 错误定位指定的服务器/实例)

感谢

+0

它无法在该地址找到数据库。尝试将web.config中的数据源替换为appsettings中的服务器地址,并查看是否得到相同的错误。 – garethb

+0

您是否尝试在连接字符串或特定用户名和密码中提供'Integrated Security = true'? – Developer

+0

既不能提供数据库地址,也不能设置Integrated Security = true。 – DayaBM

回答

0
"ConnectionStrings": { 
"IAMContext":  "Server=192.168.0.3\\SQL2016;Database=IAM;Trusted_Connection=True;" 

看起来许可issue.Try在连接字符串,提供用户名和密码一样

"ConnectionStrings": { 
"IAMContext": "Server=192.168.0.3\\SQL2016;Database=IAM; 
User=youruser; pass=yourpass; Trusted_Connection=False;" 

顺便说一句,是192.168.0.3是你的本地机器? 要检查它是否不是权限问题,请打开SSMS并尝试连接到您的数据库,以获取您在连接字符串中使用的确切配置。

+0

这不是一个权限问题,我可以通过给它的IP地址以及在SSMS中的名字连接到数据库。它通过提供用户名,密码并将False设置为trusted_connection无效。还存在同样的错误。 – DayaBM

0

经过大量的搜索后,我才知道,ASP.Net Core项目不支持EF。他们应该使用实体框架核心https://docs.microsoft.com/en-us/ef/core/index

+0

这是关于为ASP.NET核心项目创建EF6类lib的[参考资料](https://docs.microsoft.com/en-us/aspnet/core/data/entity-framework-6)。 –

相关问题