Сначала в некотором контексте я получил эту ошибку (см. Ниже) при попытке запустить приложение. NET Core 3.1 в docker. Который отлично работает в IIS в VS 2019.
Error:
An assembly specified in the application dependencies manifest (Example.CMS.API.deps.json) was not found:
package: 'Microsoft.Data.SqlClient', version: '1.1.1'
path: 'runtimes/unix/lib/netcoreapp2.1/Microsoft.Data.SqlClient.dll'
Я использую Dapper для доступа к БД, и у меня есть следующий класс (см. Ниже) для типов отображения.
public class JsonObjectTypeHandler<T> : SqlMapper.TypeHandler<T> where T : class, new()
{
public override T Parse(object value)
{
// ...
}
public override void SetValue(IDbDataParameter parameter, T value)
{
// ...
}
}
К сожалению, IDbParameter живет в пространстве имен System.Data.SqlClient
, насколько я понимаю, что пространство имен несовместимо с NET Core 3.1, как я выяснил, пытаясь протестировать / запустить в docker. Вместо этого я изменил свое приложение на ссылку System.Data.Common
и изменил все ссылки на IDbConnection
на DbConnection
, которые работали нормально. Однако интерфейс SqlMapper.TypeHandler<T>
использует IDbDataParameter
, поэтому я не могу сослаться на IDbDataParameter
в пространстве имен System.Data.Common
.
Возможно, я что-то упустил, но я думаю, что мне нужно сбросить System.Data.SqlClient
, но я не могу сделать это, пока Dapper использует интерфейс IDbDataParameter
?
Любые предложения будут великолепны!