Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/333.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# .NET Framework中的DbProviderFactorys.RegisterFactory?_C#_.net_Sql Server - Fatal编程技术网

C# .NET Framework中的DbProviderFactorys.RegisterFactory?

C# .NET Framework中的DbProviderFactorys.RegisterFactory?,c#,.net,sql-server,C#,.net,Sql Server,我已经将我在.NETCore2.1中编写的一个应用程序移植到了.NET4.7.2 基本上一切都很好,有几件事(正如预期的那样)被破坏了,但有一件事在netcore和.net中似乎不是不可知的 线路是: DbProviderFactories.RegisterFactory("test", SqlClientFactory.Instance); var db = new Database("Server=TCPblablabla login", "test"); SqlSet <CharO

我已经将我在.NETCore2.1中编写的一个应用程序移植到了.NET4.7.2

基本上一切都很好,有几件事(正如预期的那样)被破坏了,但有一件事在netcore和.net中似乎不是不可知的

线路是:

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);
dbProviderFactorys.RegisterFactory(“test”,SqlClientFactory.Instance);
var db=新数据库(“服务器=TCPblablabla登录”,“测试”);
SqlSet products=db.From(“[MyDb].[dbo].[which]”),其中(“Name={0}”,myvar);
它在.netcore上工作得非常好,但是在.NET4.7.2上不工作。因为DbProviderFactorys.RegisterFactory在4.7.2中不存在

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


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

在.Net Framework中切换提供程序的方法如下:

var dbProvider = DbProviderFactories.GetFactory("System.Data.MySql")
以下是几个很好的链接,展示了如何以旧方法设置DbProviderFactory:


希望这能让你走上正轨

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

但是有一种方法可以通过在.NET Framework上欺骗配置系统,以编程方式添加一个
DbProviderFactory
,请参阅以了解如何操作