繁体   English   中英

ASP.Net核心Web应用程序(.Net Framework)发布EF Code First方法

[英]ASP.Net Core Web Application(.Net Framework) issues EF Code First approach

我用MVC模板创建了一个ASP.Net Web应用程序(.Net Framework)并安装了EF 6最新稳定版本。 创建了一个模型和Context类。

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

在返回视图之前将以下代码放在Controller Index方法中

using (var db = new BasicTemplates.Models.IAMContext())
        {
            db.Blogs.Add(new BasicTemplates.Models.Blog{ Name = "Another   `   Blog " });
            db.SaveChanges();
        }

最后是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 - 查找指定的服务器/实例时出错)

谢谢

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

它看起来像权限问题。尝试在连接字符串中给出用户名和密码

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

BTW是192.168.0.3是你的本地机器吗? 要检查它是否是权限问题,请打开SSMS并尝试连接到您的数据库,提供您在connectionstring中使用的确切配置。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM