我正在尝试从ASP.NET Core RC1迁移到1.0.0-preview2,但在使用之前正在运行的Oracle托管驱动程序时遇到问题。尝试创建新的OracleConnection时出现以下错误:
错误CS0012类型'DbConnection'在程序集中定义 没有引用。您必须添加对程序集'System.Data的引用, 版本= 4.0.0.0,文化=中立, 公钥= b77a5c561934e089' 。 Ludens.Data..NETCoreApp,版本= V1.0 16活跃
以下是我使用它的代码:
using System;
using Oracle.ManagedDataAccess.Client;
using Microsoft.Extensions.Options;
using Ludens.Common;
using System.Data;
namespace Ludens.Data
{
public class LegacyContext : IDisposable
{
public IDbConnection Connection { get; }
public LegacyContext(IOptions<LudensSettings> options)
{
var appSettings = options.Value;
Connection = new OracleConnection(appSettings.Oracle.Connection);
Connection.Open();
}
public void Dispose()
{
Connection.Dispose();
}
}
}
这是我的package.json:
{
"version": "1.0.0-*",
"dependencies": {
"Microsoft.NETCore.App": {
"version": "1.0.0",
"type": "platform"
},
"Dapper": "1.50.0",
"Oracle.ManagedDataAccess": "12.1.24160419",
"Microsoft.Extensions.Options.ConfigurationExtensions": "1.0.0",
"Ludens.Common": "1.0.0"
},
"frameworks": {
"netcoreapp1.0": {
"imports": [
"dotnet5.6",
"portable-net45+win8",
"net451"
]
}
}
}
我有一种感觉,我错误地指定了依赖关系,但弄清楚我错过了什么。请指教。
答案 0 :(得分:3)
正如@LexLi所指出的,Oracle尚不支持.net核心,因此您将无法定位netcoreapp1.0。
但是,如果您只是针对Windows平台,则只需定位支持的.net框架:
"frameworks": {
"net451": { }
}
这至少允许你在.net核心中开发,当Oracle支持到达时,升级应该只是修改你的project.json。
注意,如果您想对Oracle使用Entity Framework 7,这仍然无效,您需要等待受支持的库。
答案 1 :(得分:0)
我也得到了DbConnection错误。 对我有用的是添加对System.Data的引用,基本上错误告诉你这样做。 我花了一段时间来弄清楚它。
简而言之: