我尝试使用:
企业数据库.data.netcore
.nuget\packages\enterpriseLibrary.data.netcore\6.0.1313
https://www.nuget.org/packages/EnterpriseLibrary.Data.NetCore/
.NET核心2.1
我有以下JSON
{
"ConnectionStrings": {
"MyDefaultConnectionName": "Server=.\\MyInstance;Database=MyDB;Trusted_Connection=True;MultipleActiveResultSets=true"
}
}
这段代码工作得很好(在我的program.cs.dotnet控制台应用程序中)(简单地显示了我的appsettings.json正在被获取,看起来我的连接字符串json结构是正确的。
using Microsoft.Extensions.Configuration;
IConfiguration config = new ConfigurationBuilder()
.SetBasePath(System.IO.Directory.GetCurrentDirectory())
.AddJsonFile("appsettings.json", optional: true, reloadOnChange: true)
.Build();
string conString = Microsoft
.Extensions
.Configuration
.ConfigurationExtensions
.GetConnectionString(config, "MyDefaultConnectionName");
Console.WriteLine("MyDefaultConnectionName.conString='{0}'", conString);
我明白了:
myDefaultConnectionName.constring='server=\myInstance;database=mydb;trusted_connection=true;multipleActiveResultsets=true'
但是,我尝试使用代码失败:
using Microsoft.Practices.EnterpriseLibrary.Data;
using System.Data;
using System.Data.Common;
public DataSet GetADataSet()
{
DataSet returnDs = null;
string sql = "Select * from dbo.MyTable";
try
{
DatabaseProviderFactory factory = new DatabaseProviderFactory();
Database db = DatabaseFactory.CreateDatabase("MyDefaultConnectionName");
DbCommand dbc = db.GetSqlStringCommand(sql);
returnDs = db.ExecuteDataSet(dbc);
}
catch (Exception ex)
{
string temp = ex.Message;
throw ex;
}
return returnDs;
}
例外情况是:
运行“select*from dbo.mytable”(“myDefaultConnectionName”)(未为静态数据库工厂设置数据库提供程序工厂)时出现异常。设置调用databaseFactory.setProviderFactory方法或通过调用databaseFactory.setDatabases方法指定自定义映射的提供程序工厂。')
我找到了这个链接…
Microsoft.Practices.EnterpriseLibrary.Data.DLL but was not handled in user code
以“旧”的基于XML的pre-dotnet核心。
我也是这个项目的网站
https://github.com/Chavoshi/EnterpriseLibrary.NetCore
但找不到一个有效的例子
…
关于我上面的代码行:
databaseProviderFactory myFactory=new databaseProviderFactory();
以及错误信息:
数据库工厂.setProviderFactory
MyFactory没有方法setProviderFactory
……
我尝试过这个…(但我知道它实际上与XML属性不同(未来的读者,不要浪费时间在下面的JSON上)
{
"ConnectionStrings": {
"MyDefaultConnectionName": "Server=.\\MyInstance;Database=MyDB;Trusted_Connection=True;MultipleActiveResultSets=true",
"providerName": "System.Data.SqlClient"
}
}
什么是神奇的语法糖使用
https://github.com/chavoshi/enterpriselibrary.netcore网站
使用Dotnet核心控制台应用程序?带JSON
附加:
基于这些评论,我还追寻了这个例子:
https://github.com/Chavoshi/EnterpriseLibrary.NetCore/tree/master/Examples
其中一个例子是基于XML的,而不是基于JSON的。