DB First,ASP Net Core 2.1,EF6:InvalidOperationException:在应用程序配置文件中找不到名为“DataContext”的连接字符串

Posted

技术标签:

【中文标题】DB First,ASP Net Core 2.1,EF6:InvalidOperationException:在应用程序配置文件中找不到名为“DataContext”的连接字符串【英文标题】:DB First ,ASP Net Core 2.1, EF6 : InvalidOperationException: No connection string named 'DataContext' could be found in the application config file 【发布时间】:2020-09-29 05:33:21 【问题描述】:

我正在使用 asp net core 2.1 和 EF 6,使用 DB First。 我在 App.Config 中的连接字符串:

我有这个错误: 处理请求时发生未处理的异常。 InvalidOperationException:在应用程序配置文件中找不到名为“DataContext”的连接字符串。 System.Data.Entity.Internal.LazyInternalConnection.get_ConnectionHasModel()

任何帮助将不胜感激。

【问题讨论】:

你能告诉我们你的 DataContext 吗?这个问题可能和你的DataContext中的内容有关,你可以参考这个:***.com/questions/10978017/… 公共部分类 APWebDataContext : DbContext public APWebDataContext() : base("name=APWebDataContext") protected override void OnModelCreating(DbModelBuilder modelBuilder) throw new UnintentionalCodeFirstException(); 公共虚拟 DbSet x 获取;放; 【参考方案1】:

根据你提供的APWebDataContext的内容,报错原因是这样的:

public APWebDataContext() : base("name=APWebDataContext")   

您无需在此处添加name

如下修改你的APWebDataContext:

public partial class APWebDataContext : DbContext 
 
  public APWebDataContext() : base("APWebDataContext")   

  protected override void OnModelCreating(DbModelBuilder modelBuilder)
   
    throw new UnintentionalCodeFirstException(); 
   

  public virtual DbSet<xxxxxx> x get; set; 

 

【讨论】:

我首先使用 DB 而不是代码。我从微软找到了这篇文章,它解释了如何在 EF6 中使用 asp.net 核心创建单独的项目。 docs.microsoft.com/en-us/aspnet/core/data/… 仍然对我没有太大帮助,因为我首先使用的是 DB,而且我的连接字符串与另一种类型不同,我无法修改它。

以上是关于DB First,ASP Net Core 2.1,EF6:InvalidOperationException:在应用程序配置文件中找不到名为“DataContext”的连接字符串的主要内容,如果未能解决你的问题,请参考以下文章

如何在现有数据库 ASP.NET Core MVC 和 EF Core(DB-First)中使用 Identity

使用命令行如何在 ASP.NET 中首先从 DB 搭建脚手架 - 而不是 ASP.NET Core MVC?

ASP.NET Core 打造一个简单的图书馆管理系统Code First 多对多关系的建立

如何在 Core 2.1 中引用 EF(Database First Approach)项目程序集

ASP.NET Core 托管捆绑包 5 是不是也可以运行 .NET/ASP.NET Core 2.1 应用程序?

要在 EF Core 中添加没有外键的导航属性,使用 .NET Core Web API 进行 DB-first 迁移