首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

EF6将连接字符串传递给DbContext: System.ArgumentException:‘不支持的关键字:’provider‘’

EF6将连接字符串传递给DbContext时,如果出现System.ArgumentException异常,提示"不支持的关键字:'provider'",这通常是由于连接字符串中的关键字不被Entity Framework 6所支持引起的。

在EF6中,连接字符串的格式应该符合ADO.NET的标准格式,其中包含了一些必要的关键字和参数。常见的连接字符串格式如下:

代码语言:txt
复制
Data Source=<服务器地址>; Initial Catalog=<数据库名称>; User ID=<用户名>; Password=<密码>; Integrated Security=<是否使用Windows身份验证>; ...

在这个连接字符串中,有一些常见的关键字和参数,如下:

  • Data Source:指定数据库服务器的地址。
  • Initial Catalog:指定要连接的数据库名称。
  • User ID:指定连接数据库的用户名。
  • Password:指定连接数据库的密码。
  • Integrated Security:指定是否使用Windows身份验证。

当出现System.ArgumentException异常时,提示"不支持的关键字:'provider'",可能是因为连接字符串中包含了不被EF6支持的关键字"provider"。在EF6中,不再需要使用"provider"关键字来指定数据库提供程序,而是通过配置文件或代码中的DbContext派生类来指定。

解决这个问题的方法是,检查连接字符串中是否包含了"provider"关键字,并将其移除。另外,还需要确保连接字符串的格式符合ADO.NET的标准格式。

以下是一个示例的连接字符串,供参考:

代码语言:txt
复制
Data Source=127.0.0.1; Initial Catalog=MyDatabase; User ID=sa; Password=123456; Integrated Security=False;

对于EF6的连接字符串,腾讯云提供了一款云数据库产品,即TencentDB for SQL Server,它是一种高性能、可扩展的云数据库解决方案,适用于各种规模的应用程序。您可以通过以下链接了解更多关于TencentDB for SQL Server的信息:

TencentDB for SQL Server

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Entity Framework Core 2.0 新特性

使用所属类型与EF6中使用复杂类型类似,(PS:这里解释一下EF6复杂类型,复杂类型是允许在实体中组织标量属性实体类型非标量属性。像实体一样,复杂类型由标量属性或其他复杂类型属性组成。)...此功能允许在元数据模型(一般在OnModelCreating)中直接在实体类型上定义LINQ查询条件(通常传递给LINQ Where查询运算符布尔表达式)。...2.性能提升方面 2.1DbContext连接池 在ASP.NET Core程序中我们使用EF Core一般都是将自定义DbContext类型注册到依赖注入系统中,然后通过控制器中构造函数参数获取该类型实例...>( options => options.UseSqlServer(connectionString)); 如果使用连接池,则在控制器请求DbContext实例时,首先检查池中是否有可用实例...一旦请求处理完成,实例上任何状态都将重置,并且实例本身返回到池中。 这在思想概念上类似于ADO.NET中连接运作方式,并且能节省DbContext实例初始化成本。

3.8K90

EF 数据库连接约定(Connection String Conventions in Code First)

,NuGet包通过设置默认Code First数据库服务器来更新配置文件,该数据库服务器在通过约定创建连接时首先使用该服务器。....(2)、如果连接字符串name属性值和上下文类名不一样,但是还是希望上下文使用配置文件数据库连接进行数据库连接,这时就需要在上下文构造函数中调用DbContext带string参数构造函数,并传入连接字符串...另外一种方式是传递给DbContext构造函数配置文件中connectionString节点name属性来指定上下文通过配置文件中connectionString来连接字符串,代码如下: public...注:默认情况下,当前连接字符串使用是System.Data.SqlClilent作为provider,这里可以被改变通过做一个IConnectionFactory不同实现来替换context.Database.DefaultConnectionFactory...使用一个DbConnection 实例,或者是SqlConnection实例或者EntityConnection实例,传递给DbContext构造函数均可指定对应数据库连接规则. 2、You can

1.4K90

从头编写 asp.net core 2.0 web api 基础框架 (4) EF配置

DbContext需要一个Provider,以便能访问数据库(这里我们就用LocalDB吧)。 我们就建立一个DbContext吧(大一点项目会使用多个DbContext)。...但是它如何连接数据库?这就需要连接字符串,我们需要为DbContext提供连接字符串,这里有两种方式。...连接字符串ProductDb是数据库名;连接字符串最后一部分表示这是一个受信任连接,也就是说使用了集成验证,在windows系统就是指windows凭证。...它是: 如何安全保存敏感配置数据,例如:连接字符串 保存连接字符串,你可能会想到appSettings.json,但这不是一个好想法。...而这个地方就是在你应该服务器上添加连接字符串地方。再看一下调试: ? EnvironmentProvider在第4个位置,appSettings.production.json在第3个位置。

2.2K70

生成数据库

DbContext需要一个Provider,以便能访问数据库(这里我们就用LocalDB吧)。 我们就建立一个DbContext吧(大一点项目会使用多个DbContext)。...但是它如何连接数据库?这就需要连接字符串,我们需要为DbContext提供连接字符串,这里有两种方式。...optionsBuilder提供了一个UseSqlServer()这个方法,它告诉Dbcontext将会被用来连接Sql Server数据库,在这里就可以提供连接字符串,这就是第一种方法。...它是: 如何安全保存敏感配置数据,例如:连接字符串 保存连接字符串,你可能会想到appSettings.json,但这不是一个好想法。...而这个地方就是在你应该服务器上添加连接字符串地方。再看一下调试: EnvironmentProvider在第4个位置,appSettings.production.json在第3个位置。

99120

从EFCore上下文使用到深入剖析DI生命周期最后实现自动属性注入

但在EFCore中不同是,DbContext不再提供无参构造函数,取而代之是必须传入一个DbContextOptions类型参数,这个参数通常是做一些上下文选项配置例如使用什么类型数据库连接字符串是多少...,DI容器会自动帮我们把options进来。...如果要手动new一个上下文,那岂不是每次都要自己?不行,这太痛苦了。那有没有办法不这个参数?肯定也是有的。.../efcoredemo.db"); } 即使是这样,依然有不够优雅地方,那就是连接字符串被硬编码在代码中,不能做到从配置文件读取。反正我忍受不了,只能再寻找其他方案。...这是因为,root provider只有一个,如果恰好有某个singleton服务引用了一个scope服务,这会导致这个scope服务也变成singleton,仔细看一下注册DbContext扩展方法

1.2K20

EFCore批量操作,你真的清楚吗

,而是被组合为一个参存储过程脚本(用列值作为参数);如果使用EF6执行相同代码,则在SQL Server Profiler中将看到3个独立插入语句 。...下面是EFCore、EF6批量插入对比截图: ? ?...,所以遇到很大数量批量操作,EFCore SqlProvider会帮我们批量操作分块传输,这也是我们在实际大批量使用时看到分块发送原因。...语句数量,也可设定为1禁用批量插入 } 总结 ① EFCore 相比EF6,已经支持批量操作,能有效提高应用程序性能 ② EFCore批量操作能力,由对应DataBaseProvider支撑(Provider...③ 另外一个批量操作方法,这里也点一下:构造Rawsql 【EFCore也支持Rawsql】   sqlite不支持存储过程,为批量插入提高性能,可采用此方案: var insertStr = new

3.4K10

Entity Framework Core 2.0 入门

映射: Type Configuration 配置 Owned Entities (替代EF6复杂类型) Scalar UDF映射 分表 性能和其他 DbContext Pooling, 这个很好 Raw...SQL插入字符串....那么efcore会在指定连接字符串地方建立该数据库, 并应用当前迁移....也可以): 输入用户名: 密码: 选择是否保存密码: 最后输入档案名字: 随后VSCode尝试连接该数据库, 成功后右下角会这样显示 (我这里输入有一个错误, 数据库名字应该是LearnEF): 随后在该文件中输入下面这个.../LearnEf.UI 看下控制台: 可以看到输出了sql语句, 而且这个出入动作后, 做了一个查询把插入数据生成Id取了回来. 默认情况下log不显示进去参数, 这是为了安全.

3.1K80

Entity Framework Core 2.0 新特性

这在概念上类似于ADO.NET提供数据库连接池,旨在节省一些DbContext实例初始化成本。...六.表拆分(Table splitting)   现在可以两个或多个实体类型映射到同一表,其中主键列将被共享,每一行对应两个或多个实体。   ...包含定义导航实体是所有者。当查询所有者时,默认包含所属类型。   按照惯例,将为所属类型创建一个影子主键,它将通过使用表拆分映射到与所有者相同表。...目前只支持标量函数 EF Core迁移将不负责创建它,您必须在数据库中创建映射函数 九.code first 实体配置   在EF6可以通过 EntityTypeConfiguraiton 封装特定实体类型配置代码...,在EF Core2.0中,这个特性回来了(EF Core 之前 core版本不支持)。

1.9K50

EF Core 实现读写分离最佳方案

前言 公司之前使用Ado.net和Dapper进行数据访问层操作, 进行读写分离也比较简单, 只要使用对应数据库连接字符串即可...., 再关闭之前连接, 才能进行切换 另一种方式是通过监听Diagnostic来进行查询sql切换到从库执行, 这种方式虽然可以实现无感知切换操作, 但不能满足公司业务需求....我认为最理想方式是要避免数据库连接切换, 且能够适应多DbContext情况, 在创建上下文实例时,就指定好是访问主库还是从库, 而不是在后期再进行数据库切换....因此, 在上下文实例化时,就传入相应数据库连接字符串, 这样一来DbContext创建就需要交由我们自己来进行, 就不是由DI容器进行创建了....IUnitOfWork GetUnitOfWork(Type dbContextType, string dbName = null); } IDbProvider 接口, 根据上下文类型和配置文件中数据库连接字符串名称创建

2.2K00

CSharpEntityFramework与CodeFirst实践

连接字符串。...换句话说,继承了DbContext类就对应了某一个数据库,其连接属性由配置文件中连接配置决定,并在DbContext中设置进去(基类构造函数设置),这个DbContext所有DbSet就对应到数据库中表...注意到,构造函数调用了基类构造函数,传入了"name=BookDbDemo"字符串,这个字符串就是指app.config配置文件中数据库连接名,然后我们查看App.config文件,发现vs已经为我们生成了一个连接字符串节点...创建好数据库如下: 于是,我们将其中连接字符串connectionString内容修改为我们当前数据库连接字符串: <add name="BookDbDemo...之后我们再次使用update-database命令<em>将</em>变更更新到数据库中,得到当前<em>的</em>数据库内容: 此时我们<em>将</em>book表中填充一些数据: 然后,我们<em>将</em><em>DbContext</em>中<em>的</em>DbSet属性删除,再次进行迁移

24610

EF Core 数据验证

首先我们要创建一个上下文扩展方法: public static List ExecuteValidation(DbContext context) { List...这时一定有部分小伙伴想到了通过重写 SaveChanges 方法,验证代码加入到这个方法中,这样就可以解决刚才那个问题,达到一劳永逸效果。...我们定义完验证规则后下一步就是将我们定义验证规则与应用程序连接起来,这里我们需要用到 AddFluentValidation 来注入,例如在 Asp.Net Core 程序中我们注入程序写入 Startup...示例代码如下: if(ModelState.IsValid) { //后续代码 } else { //验证不通过处理代码 } 这里有一点需要注意,当传递实体为 null 时,返回错误信息,这是因为...二、总结 本篇文章讲解了 EF Core 数据验证方法,虽然讲时 EF Core 方法,但是同样也适用于 EF6 ,这些内容是常用,上述部分代码可以在大部分项目中通用。

1.2K20

Entity Framework应用:使用Code First模式管理数据库创建和填充种子数据

一、管理数据库连接 1、使用配置文件管理连接之约定 在数据库上下文类中,如果我们只继承了无参数DbContext,并且在配置文件中创建了和数据库上下文类同名连接字符串,那么EF会使用该连接字符串自动计算出数据库位置和数据库名...,即“SampleDbEntities”,并在配置文件中寻找和它同名连接字符串,然后它会使用该连接字符串计算出应该使用哪个数据库provider,之后检查数据库位置,之后会在指定位置创建一个名为TestDb.mdf...// 添加到数据上下文中 20 public virtual DbSet Students { get; set; } 21 } 22 } 上面的代码连接字符串名字传给了...DbContext有参构造函数,这样一来,我们数据库上下文就会开始使用该连接字符串了,在Program类中输出Name和Age字段值: 1 using ExistsConnectionString.EF...无论我们对传入连接字符串名称如何改变,都是无济于事,也就是说和数据库上下文类名同名连接字符串优先权更大。

1.2K20

Oracle中使用Entity Framework 6.x Code-First方式开发

去年写过一篇EF简单学习笔记,当时EF还不支持OracleCode-First开发模式,今天无意又看了下Oracle官网,发现EF6.X已经支持了,并且给出了二篇教程(英文版): 1.Using NuGet...下图这二个地方,是用来配置连接字符串,记得修改 ?...ok, ODP.Net安装配置完成 2.使用Code First模式开发 a) 先参考下图,修改连接字符串(本文用是HR这个示例用户,大家可以根据实际情况修改) ?...下面是DbContext部分,相当于DAL层.注意:OnModelCreating,这里表示根据Model创建表时,默认创建到HR这个Database Schema下 ? 运行结果 ?...然后Employee类定义,把原来注释掉Location属性行,去掉注释(即:增加了Location属性) ?

1.4K50
领券