首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >.NET框架中的DbProviderFactories.RegisterFactory?

.NET框架中的DbProviderFactories.RegisterFactory?
EN

Stack Overflow用户
提问于 2019-03-06 23:08:07
回答 2查看 2.4K关注 0票数 1

我已经将我在.NET Core2.1中编写的应用程序移植到了.NET 4.7.2。

基本上一切都是正常的,有几个东西坏了(正如预期的),但有一件事在netcore和.net中似乎不是不可知论的。

这行代码是:

代码语言:javascript
复制
DbProviderFactories.RegisterFactory("test", SqlClientFactory.Instance);
var db = new Database("Server=TCPblablabla login", "test");

SqlSet <CharObj> products = db.From<CharObj>("[MyDb].[dbo].[Whatever]").Where("Name = {0}", myvar);

它在.netcore上工作得很好,但是在.Net 4.7.2上就不行了。因为4.7.2中不存在DbProviderFactories.RegisterFactory。

我似乎有很多人在抱怨它,但我还没有找到任何覆盖等。你们有什么想法来解决这个问题吗?

PS:这是不应该发生的,我在GitHub上打开了一个问题,几周后他们修复了它,并关闭了我的门票,甚至在他们的C#新闻发布会上显示了(我不记得是哪个了)。

EN

回答 2

Stack Overflow用户

发布于 2021-01-15 15:43:49

DbProviderFactories类是很久以前设计的,注册工厂必须通过.NET框架上的应用程序配置文件来完成。RegisterFactory方法是后来才在.NET核心上添加的,并且从未向后移植到.NET框架。

但是有一种方法可以通过欺骗.NET框架上的配置系统来以编程方式添加DbProviderFactory,请参阅Add a DbProviderFactory without an App.Config以了解如何做到这一点。

票数 1
EN

Stack Overflow用户

发布于 2019-03-28 22:10:11

在.Net框架中切换提供程序的方法是这样的:

代码语言:javascript
复制
var dbProvider = DbProviderFactories.GetFactory("System.Data.MySql")

这里有几个很好的链接,展示了如何以旧的方式设置DbProviderFactory:

https://blog.codeinside.eu/2016/12/31/dbproviderfactory-write-database-agnostic-adonet-code/

https://weblog.west-wind.com/posts/2017/nov/27/working-around-the-lack-of-dynamic-dbproviderfactory-loading-in-net-core

希望这能让你走上正轨!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55026261

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档